用阻塞队列实现
import java.util.concurrent.BlockingDeque;
import java.util.concurrent.LinkedBlockingDeque;
public class Test927 extends Thread {
public void run() {
Customer a = new Customer();
a.start();
Producer b = new Producer();
b.start();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Test421 c = new Test421();
c.start();
}
int key = 0;
BlockingDeque<Integer> deque=new LinkedBlockingDeque<Integer>(1000);
class Customer extends Thread {
public void run() {
while (true) {
try {
int key=deque.take();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("消费了" + deque.size());
}
}
}
class Producer extends Thread {
public void run() {
while (true) {
try {
deque.put(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("生产了" + deque.size());
}
}
}
}
本文介绍了一个使用Java的阻塞队列实现的生产者消费者模式示例。通过`BlockingDeque`接口和`LinkedBlockingDeque`类,实现了一个简单的生产者线程不断向队列中添加元素,而消费者线程不断从队列中移除元素的过程。该示例展示了如何处理线程间的同步问题,并保持队列元素数量的稳定。

被折叠的 条评论
为什么被折叠?



