⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 producerconsumerproblem.java

📁 Java 程序设计源码 只提供了部分
💻 JAVA
字号:
class Producer extends Thread {  private Buffer buffer;  private int number;  public Producer(Buffer buffer, int number) {    this.buffer = buffer;    this.number = number;  }  public void run() {    for(int i = 0; i < 6;) {      buffer.put(i);      System.out.println("Producer # " + number + " Produce " + (i++));      try {        Thread.sleep((int)(Math.random() * 2000));      }      catch(InterruptedException e) {      }    }  }}class Consumer extends Thread {  private Buffer buffer;  private int number;  public Consumer(Buffer buffer, int number) {    this.buffer = buffer;    this.number = number;  }  public void run() {    for(int i = 0; i < 3; i++) {      int v = buffer.get();      System.out.println("Consumer # " + number + " Consume " + v);    }  }}class Buffer {  private int contents;  private boolean available = false;  public synchronized int get() {    while(!available) {      try {        this.wait();      }      catch(InterruptedException e) {      }    }    int value = contents;    available = false;    System.out.println("Take out " + contents);    this.notify();    return value;  }  public synchronized void put(int value) {    while(available) {      try {        this.wait();      }      catch(InterruptedException e) {      }    }    contents = value;    available = true;    System.out.println("put in " + contents);    this.notifyAll();  }}public class ProducerConsumerProblem {  public static void main(String[] args) {    Buffer buffer = new Buffer();    new Producer(buffer, 101).start();    new Consumer(buffer, 200).start();    new Consumer(buffer, 201).start();  }}

⌨️ 快捷键说明

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