BlockingQueue 啊 阻塞队列 JUC下又一重要工具
继承自传统队列Queue 拥有传统队列的属性,特点在于可以设置队列大小,如果队列满了再入队会阻塞,如果队列空了再出队会阻塞。
下边表 是阻塞队列 重要常用方法 put(e) take() 会阻塞
实现BlockingQueue的操作大部分都是线程安全的,内部由一个ReentrantLock,两个Condition控制,实现了入队出队多线程安全及阻塞
下面研究一下下最常用的ArrayBlockingQueue
ArrayBlockingQueue常用于生产者消费者这种模式,支持多生产者 多消费者
几个重要属性
1.put()
获取锁
上锁 被中断释放
try{
当队列满了;
Condition notFull 等待;
入队
}
未完待续
原文:https://www.cnblogs.com/ttaall/p/14012483.html