初探LinkedBlockingQueue

 java.util.concurrent包下的新类。LinkedBlockingQueue就是其中之一,是一个阻塞的线程安全的队列,底层采用链表实现。

  LinkedBlockingQueue构造的时候若没有指定大小,则默认大小为Integer.MAX_VALUE,当然也可以在构造函数的参数中指定大小。LinkedBlockingQueue不接受null。

添加元素的方法有三个:add,put,offer,且这三个元素都是向队列尾部添加元素的意思。

区别:

add方法在添加元素的时候,若超出了度列的长度会直接抛出异常:

 put方法,若向队尾添加元素的时候发现队列已经满了会发生阻塞一直等待空间,以加入元素。

 offer方法在添加元素时,如果发现队列已满无法添加的话,会直接返回false。    

从队列中取出并移除头元素的方法有:poll,remove,take。    

        poll: 若队列为空,返回null。

        remove:若队列为空,抛出NoSuchElementException异常。

        take:若队列为空,发生阻塞,等待有元素。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Java中线程安全的容器主要包括两类: Vector、Hashtable,以及封装器类Collections.sy...
    yhthu阅读 10,913评论 1 1
  • 相关文章Java并发编程(一)线程定义、状态和属性 Java并发编程(二)同步Java并发编程(三)volatil...
    刘望舒阅读 10,601评论 1 31
  • 我想大多数爸妈们都经历过,老师们让孩子带xxx去学校,其实就是要爸妈们负责准备,可是有些作业真的是让爸妈们一言难尽...
    于清_9bc7阅读 1,950评论 1 0
  • 人的一生能遇到一位给你指点迷津的人,那是你人生的幸事。 今天和一朋友闲聊,朋友说,她的职业生涯有幸得遇一位导师,不...
    微尘微言阅读 3,060评论 1 3
  • 文 | 壹默了然 1. 受到别人的嘲笑、侮辱,确实是件不愉快的事情。可是,有些时候事情的起因和发展并非那么简单,往...
    壹默了然阅读 5,367评论 21 12

友情链接更多精彩内容