blockingQueue

//take put 都是阻塞的    

package threadimp;

import java.util.concurrent.BlockingQueue;

public class Producer implements Runnable {
BlockingQueue<String> queue;
public Producer(BlockingQueue<String> queue) {
    this.queue = queue;
}

@Override
public void run() {
    // TODO Auto-generated method stub
    String name = Thread.currentThread().getName();
    System.out.println("producing " + name);
    try {
        queue.put(name);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}





package threadimp;

import java.util.concurrent.BlockingQueue;

public class Consumer implements Runnable{
BlockingQueue<String> queue;
public Consumer(BlockingQueue<String> queue) {
    this.queue = queue;
}
@Override
public void run() {
    // TODO Auto-generated method stub
    System.out.println("consuming " + Thread.currentThread().getName());
    
    try {
        String temp = queue.take();
        System.out.println("get " + temp);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    
}

}



package threadimp;

import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;

public class PCTest {
public static void main(String[] args) {
    BlockingQueue<String> queue = new LinkedBlockingQueue<>(2);
    Consumer consumer = new Consumer(queue);
    Producer producer = new Producer(queue);
for (int i = 0; i < 3; i++) {
    new Thread(producer, "Producer " + i).start();
}

for (int i = 0; i < 5; i++) {
    new Thread(consumer, "Consumer " + i).start();
}
//new Thread(producer, "Producer" + 5).start();
}
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 刚下班,饿了两个小时狂吃一顿,一小时后再跑步,在此之前码码字! 众所周知,现在工作压力不小,生活压力也不小,各行各...
    大周同学666阅读 3,134评论 2 0
  • 由于儿子延时班拖堂,我在教室里跟琪琪老师闲聊了一会儿,说起孩子对家长的依赖性,琪琪老师忽然说: “我们班最独立的孩...
    若尘之风阅读 2,953评论 1 5
  • 感觉身边有一颗定时炸弹。 我怕。 我怒其不争。 愤怒无助。又掺杂些恐惧。 在外人面前,自己老妈再不堪,也要争。私底...
    成长的斑马阅读 1,247评论 0 0
  • 《论语》次第 学而第一:学也者,所以学为圣人也。人无不学而知之,故《学而》居首。 为政第二:学而优则仕,故《为政》...
    赛德传播阅读 9,084评论 0 0
  • 刚看到模仿需要守、破、离的时候,不知道它们和深度模仿有什么关系,直到继续看几遍后,还是不懂。 好吧,我实际还是不太...
    且试风夕阅读 1,274评论 0 3

友情链接更多精彩内容