📄 produce_consume.java
字号:
import java.util.*;class HoldInt { private int sharedInt; private boolean writeAble=true; private LinkedList<Integer> list = new LinkedList<Integer>(); public synchronized void set(int val) { while(!writeAble || list.size() >= 20) { try { System.out.println("Produce Waiting......"); wait(); } catch(InterruptedException e){} } writeAble=false; list.addLast(val); System.out.println("Produce Finished......"+val); notify(); } public synchronized int get() { while(writeAble || list.size() == 0) { try { System.out.println("Consume Wainting......"); wait(); } catch(InterruptedException e){} } sharedInt = list.getFirst().intValue(); list.removeFirst(); writeAble=true; System.out.println("Consume Finished......"+sharedInt); notify(); return sharedInt; } } class ProduceInt extends Thread { private HoldInt hi; public ProduceInt(HoldInt hiForm) { hi=hiForm; } public void run() { for(int i=1;i<=400;i++) { hi.set(i); } }} class ConsumeInt extends Thread { private HoldInt hi; public ConsumeInt(HoldInt hiForm) { hi=hiForm; } public void run() { for(int i=1;i<=400;i++) { hi.get(); } }} class produce_consume { public static void main(String args[]) { HoldInt h=new HoldInt(); ProduceInt p=new ProduceInt(h); ConsumeInt c=new ConsumeInt(h); p.start(); c.start(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -