package com.test;
import java.util.Random;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class BlockingQueueTest
{
/**
* @param args
*/
public static void main(String[] args)
{
ExecutorService pool = Executors.newCachedThreadPool();
final BlockingQueue bq = new ArrayBlockingQueue(3);
for (int i = 0; i < 2; i++)
{
pool.execute(new Runnable()
{
public void run()
{
try
{
while (true)
{
Thread.sleep(new Random().nextInt(1000));
System.out.println(Thread.currentThread().getName()
+ "准备放数据");
bq.put(1);
System.out.println(Thread.currentThread().getName()
+ "已经放完数据,目前队列有"+bq.size()+"个数据");
}
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
});
}
pool.execute(new Runnable()
{
public void run()
{
try
{
while (true)
{
Thread.sleep(100);
System.out.println(Thread.currentThread().getName()
+ "准备取数据");
bq.take();
System.out.println(Thread.currentThread().getName()
+ "已经取走数据,目前队列有"+bq.size()+"个数据");
}
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
});
}
}
分享到:
相关推荐
在新增的Concurrent包中,BlockingQueue...通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。
14-阻塞队列BlockingQueue实战及其原理分析二.pdf
定义全局线程池,将用户的请求放入自定义队列中,排队等候线程调用,等待超时则自动取消该任务,实现超时可取消的异步任务
10、阻塞队列BlockingQueue实战及其原理分析_
主要介绍了java 中 阻塞队列BlockingQueue详解及实例的相关资料,需要的朋友可以参考下
6.6 阻塞队列BlockingQueue 实战及其原 理分析一副本.mp4
6.7 阻塞队列BlockingQueue 实战及其原 理分析二副本.mp4
6.6 阻塞队列BlockingQueue 实战及其原 理分析一副本副本.mp4
6.7 阻塞队列BlockingQueue 实战及其原 理分析二副本副本.mp4
6.6 阻塞队列BlockingQueue 实战及其原 理分析一副本副本副本.mp4
BlockingQueue接口 – 阻塞队列2.1 ArrayBlockingQueue类(有界阻塞队列)2.2 LinkedBlockingQueue类(无界阻塞队列)3. 源码:BlockingQueue实现生产者消费者模式→ 输出结果截图 1. Queue接口 – 队列 public ...
6.JUC并发工具类在大厂的应用场景详解 (1).pdf 7、深入理解 AQS 独占锁之 Reentrantlock 源码分析 (1).pdf 8、读写锁ReentrantReadWriteLock&StampLock详解.pdf ...10、阻塞队列BlockingQueue 实战及其原理分析.pdf
主要介绍了详解Java阻塞队列(BlockingQueue)的实现原理,阻塞队列是Java util.concurrent包下重要的数据结构,有兴趣的可以了解一下
在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文简要介绍下BlockingQueue...
弹簧阻挡队列 用Spring Boot阻止队列
java中线程队列BlockingQueue的用法
阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景...
在前面的的文章,写了一个带有缓冲区的队列,是用JAVA的Lock下的... 使用ArrayBlockingQueue的一个子类BlockingQueue实现一个可阻塞队列,一个线程put另一个线程take,当队列为空时take等待,当线程满时put等待
线程----BlockingQueue 的介绍说明
2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 PriorityBlockingQueue 7. 同步队列 Synchronou sQueue 8. ...