阻塞队列

为什么会有阻塞队列

非阻塞队列不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略。

通过可重入锁实现同步,内部实现了线程等待和唤醒功能。


几种主要的阻塞队列

  • ArrayBlockingQueue:基于数组实现,先进先出,有界队列,可以指定公平性与非公平性,默认情况下为非公平的,即不保证等待时间最长的队列最优先能够访问队列。
  • LinkedBlockingQueue:基于链表实现,先进先出,有界队列,默认大小为Integer.MAX_VALUE
  • PriorityBlockingQueue:按照优先级对元素进行排序,按照优先级顺序出队,无界队列
  • DelayQueue:延时阻塞队列,无界队列



版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接,感谢各位看官!!!

本文出自:monkeyGeek

座右铭:生于忧患,死于安乐

欢迎志同道合的朋友一起交流、探讨!

monkeyGeek

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×