国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

App下載
首頁javaconcurrentJava Thread - 如何使用信號(hào)燈解決生產(chǎn)者 - 消費(fèi)者

Java Thread - 如何使用信號(hào)燈解決生產(chǎn)者 - 消費(fèi)者

我們想知道如何使用信號(hào)燈解決生產(chǎn)者 - 消費(fèi)者。
import java.util.LinkedList;
import java.util.concurrent.Semaphore;

public class Main{
  public static void main(String[] args) {
    new Producer().start();
    new Consumer("A").start();
    new Consumer("B").start();
  }
}

class Data {
  public static Object LOCK = new Object();

  public static LinkedList list = new LinkedList();
  public static Semaphore sem = new Semaphore(0);
  public static Semaphore mutex = new Semaphore(1);
}
class Consumer extends Thread {
  String name;
  public Consumer(String name) {
    this.name = name;
  }
  public void run() {
    try {

      while (true) {
        Data.sem.acquire(1);
        Data.mutex.acquire();
        System.out.println("Consumer \"" + name + "\" read: "
            + Data.list.removeFirst());
        Data.mutex.release();
      }
    } catch (Exception x) {
      x.printStackTrace();
    }
  }
}

class Producer extends Thread {
  public void run() {
    try {
      int N = 0;

      while (true) {
        Data.mutex.acquire();
        Data.list.add(new Integer(N++));
        Data.mutex.release();
        Data.sem.release(1);
        Thread.sleep(500);
      }
    } catch (Exception x) {
      x.printStackTrace();
    }
  }
}