欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java生產和消費

王梓涵1年前7瀏覽0評論

Java 中的生產者/消費者模型是一種很常見的并發問題,用來管理多個線程之間的數據交流與同步。

在這個模型中,生產者和消費者分別是兩個不同的線程,生產者專門用來生成數據,而消費者則會將生產者生成的數據取出并處理。

在 Java 中,可以通過使用 wait()、notify() 和 notifyAll() 方法來實現生產者/消費者模型的同步。這些方法通常會被放到同步塊中使用,以確保線程之間的順序執行。

public class ProducerConsumer {
private LinkedListqueue = new LinkedList<>();
private final int CAPACITY = 10;
public void produce() throws InterruptedException {
int value = 0;
while (true) {
synchronized (this) {
while (queue.size() == CAPACITY) {
wait();
}
System.out.println("Producer produced-" + value);
queue.add(value++);
notify();
Thread.sleep(1000);
}
}
}
public void consume() throws InterruptedException {
while (true) {
synchronized (this) {
while (queue.size() == 0) {
wait();
}
int value = queue.poll();
System.out.println("Consumer consumed-" + value);
notify();
Thread.sleep(1000);
}
}
}
}

上述代碼是一個簡單的生產者/消費者模型實現,其中,生產者線程通過不斷往隊列中添加數據,而消費者則是不斷從隊列中取出數據進行處理。

使用 wait() 和 notify() 方法可以使線程在等待隊列不為空或隊列不滿時進入休眠狀態,等待其他線程喚醒其繼續執行。

總而言之,Java 中的生產者/消費者模型可以很好地管理線程間的數據交流與同步,同時也可以有效地避免出現資源競爭等問題。