鬼谷吧 关注:1,437贴子:4,305
  • 0回复贴,共1

开始就是看

只看楼主收藏回复

public class BlockingQueueConsumerProducer {
public static void main(String[] args) {
Resource resource = new Resource();
//ProducerThread p = new ProducerThread(resource);
ProducerThread p1 = new ProducerThread(resource);
ProducerThread p2 = new ProducerThread(resource);
ConsumerThread c1 = new ConsumerThread(resource);
//ConsumerThread c2 = new ConsumerThread(resource);
//ConsumerThread c3 = new ConsumerThread(resource);
p1.start();
p2.start();
c1.start();
}
/**
* 消费者线程
*/
static class ConsumerThread extends Thread{
private Resource resource;
public ConsumerThread(Resource resource){
网页链接 = resource;
}
public void run(){
while (true){
try {
Thread.sleep((long)(1000*Math.random()));
}catch (InterruptedException e){
e.printStackTrace();
}
resource.remove();
}
}
}
static class ProducerThread extends Thread{
private Resource resource;
public ProducerThread(Resource resource){
网页链接 = resource;
}
public void run(){
while (true){
try {
Thread.sleep((long)(1000*Math.random()));
}catch (InterruptedException e){
e.printStackTrace();
}
resource.add();
}
}
}
static class Resource{
private BlockingQueue resourceQueue = new LinkedBlockingQueue(10);
public void add(){
try {
resourceQueue.put(1);
System.out.println("生产者"+Thread.currentThread().getName()
+"生产一件资源,"+"当前资源池有"+resourceQueue.size()+"个资源");
}catch (InterruptedException e){
e.printStackTrace();


来自iPhone客户端1楼2022-04-11 20:44回复