zoukankan      html  css  js  c++  java
  • 线程安全的队列

    Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue

    BlockingQueue是一个接口, 继承Queue接口,Queue接口继承 Collection

    BlockingQueue的方法

     其中add 和remove方法会抛出异常,一般使用后面两组方法

    BlockingQueue的实现类

        ArrayBlockingQueue

        DelayQueue

        LinkedBlockingQueue

        PriorityBlockingQueue

        SynchronousQueue

    ArrayBlockingQueue:由数组实现的有界阻塞队列,其中元素以FIFO(先入先出)顺序排序,其构造函数必须带一个int参数来指明其大小,可选参数fair(布尔)决定在多线程抢占时是否使用公平锁

    LinkedBlockingQueue:由链表实现的阻塞队列,其中元素以FIFO(先入先出)顺序排序,若其构造函数带一个规定大小的参数,生成的BlockingQueue有大小限制,若不带大小参数,所生成的BlockingQueue的大小由Integer.MAX_VALUE来决定

    PriorityBlockingQueue:无界的阻塞队列,其所含对象的排序不是FIFO而是依据对象的自然排序顺序或者是构造函数的Comparator决定的顺序

    SynchronousQueue:特殊的BlockingQueue,对其的操作必须是放和取交替完成的

  • 相关阅读:
    04构建之法阅读笔记之四
    冲刺周期第十天
    冲刺周期第九天
    第二阶段冲刺--每日立会(4)
    第二阶段冲刺--每日立会(3)
    第二阶段冲刺--每日立会(2)
    第二阶段冲刺--每日立会(1)
    第十二周学习记录表
    第一阶段冲刺--每日立会(10)
    第一阶段冲刺--每日立会(9)
  • 原文地址:https://www.cnblogs.com/moris5013/p/11738375.html
Copyright © 2011-2022 走看看