BlockingQueue数组阻塞队列

一、使用java.util.concurrent.*底下的java并发包现实数组阻塞队列。

    public static void main(String[] args) {
        //清缓存
//        RedisUtil redisUtil = RedisUtil.getRu();
//        redisUtil.del(Constants.TEST)
//        System.out.println("清楚缓存成功!");
    try {
    //数组阻塞队列
    BlockingQueue<String> queue = new ArrayBlockingQueue<String>(1024);
    Procuder producer = new Procuder(queue);
    Consuter consuter = new Consuter(queue);
    new Thread(producer).start();
    new Thread(consuter).start();
    Thread.sleep(2000);
} catch (Exception e) {
e.printStackTrace();
}
    }

二、procuder消息生产者

public class Procuder implements Runnable{


private BlockingQueue<String> queue;

public Procuder(BlockingQueue<String> queue){
this.queue = queue;
}

@Override
public void run() {
try {
for(int i=0;i<10;i++){
queue.put("a"+i);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

三、Consuter消息消费者

public class Consuter implements Runnable{


private BlockingQueue<String> queue;

public Consuter(BlockingQueue<String> queue){
this.queue = queue;
}
@Override
public void run() {
try{
Thread.sleep(5000);
for(int i=0;i<queue.size();i++){
System.out.println(i+":"+queue.size());
System.out.println(queue.take());
Thread.sleep(1000);
}
System.out.println(queue.size());
}catch(Exception e){
e.printStackTrace();
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值