producerconsumertest1.java

来自「java课件 java课件 java课件 java课件」· Java 代码 · 共 56 行

JAVA
56
字号
class CubbyHole{
  private int content ;
public synchronized void put(int value){
content=value;
}
  public synchronized int get(){
return content ;
} 
}


class Producer extends Thread {
    private CubbyHole cubbyhole;
    private int number;
    public Producer(CubbyHole c, int number) {
        cubbyhole = c;
        this.number = number;
    }
    public void run() {
       for (int i = 0; i < 10; i++) {
          cubbyhole.put(i);
          System.out.println("Producer #" + this.number + " put: " + i);
          try {
                sleep((int)(Math.random() * 100));
           } catch (InterruptedException e) { }
        }
    }
}

class Consumer extends Thread {
    private CubbyHole cubbyhole;
    private int number;
    public Consumer(CubbyHole c, int number) {
        cubbyhole = c;
        this.number = number;
    }
    public void run() {
        int value = 0;
        for (int i = 0; i < 10; i++) {
            value = cubbyhole.get();
      System.out.println("Consumer #" + this.number + " got: " + value);
        }
    }
}


public class ProducerConsumerTest1 {
    public static void main(String[] args) {
        CubbyHole c = new CubbyHole();
        Producer p1 = new Producer(c, 1);
        Consumer c1 = new Consumer(c, 1);
        p1.start();
        c1.start();
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?