Java 阻塞队列之ArrayBlockingQueue
软件编程
220
皇太极
: 2021-06-09 18:07:48
ArrayBlockingQueue是基于数组的先进先出(FIFO)有界阻塞队列。
  • 创建队列时,必须要指定队列容量(capacity),即数组大小。
  • 队列一旦被创建,那么队列容量不能被改变。
  • 队列支持公平模式和非公平模式,默认非公平模式。
  • 队列中只有一把锁,写锁和读锁未分离,并发控制采用了经典的two-condition(notEmpty、notFull)算法

源代码描述如下:

使用示例:
  1. BlockingQueue<String> queue = new ArrayBlockingQueue<String>(1024);
  2. queue.put("1");
  3. String string = queue.take();