什么是阻塞队列,秒懂?
解决方法:
阻塞队列BlockingQueue,相当我们经常接触的List,但如果BlockQueue是空的,这时如果有线程要从这个BlockingQueue取元素的时候将会被阻塞进入等待状态,直到别的线程在BlockingQueue中添加进了元素,被阻塞的线程才会被唤醒。同样,如果BlockingQueue是满的,试图往队列中存放元素的线程也会被阻塞进入等待状态,直到BlockingQueue里的元素被别的线程拿走才会被唤醒继续操作。
常用的阻塞队列:
ArrayBlockingQueue提供一种有界阻塞队列
PriorityBlockingQueue支持在并发情况下的优先级队列
LinkedBlockingQueue是无界的阻塞队列
LinkedBlockingDeque类提供对双端结点的操作
SynchronousQueue为异步队列
DelayQueue提供一种延时执行任务的队列
LinkedTransferQueue提供的功能与SynchronousQueue有些类似,但其具有可以尝试性地添加一些数据
本文链接:http://www.yayihouse.com/yayishuwu/chapter/1531