并发容器之BlockingQueue - omigaw/spring- GitHub Wiki
1. BlockingQueue简介
在实际编程中,会经常使用到JDK中Collection集合框架中的各种容器类如实现:List、Map、Queue接口的容器类,但是这些容器类基本上不是线程安全的,除了使用Collections可以将其转换为线程安全的容器,Doug Lea大师为我们准备了对应的线程安全的容器,如实现list接口的CopyOnWriteArrayList,实现Map接口的ConcurrentHashMap,实现Queue接口的ConcurrentLinkedQueue。
当队列容器已满,生产者线程会被阻塞,直到队列未满;当队列容器为空时,消费者线程会被阻塞,直至队列非空时为止。
2.常用的BlockingQueue
实现BlockingQueue接口的有ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、LinkedBlockingDeque、LinkedTransferQueue、PriorityBlockingQueue、SynchronousQueue,而这几种常见的阻塞队列也是在实际编程中会常用的。