android linkedblockingqueue
时间: 2023-07-22 17:21:44 浏览: 134
JDK容器学习之Queue:LinkedBlockingQueue
LinkedBlockingQueue 是一个线程安全的、基于链表的阻塞队列,可以用于多线程的生产者-消费者模式中。
它的内部维护了一个链表,当队列为空时,从队头获取元素的操作会被阻塞,直到队列中有元素;当队列已满时,往队尾添加元素的操作会被阻塞,直到队列中有空闲位置。
LinkedBlockingQueue 的主要方法包括 put()、take()、offer()、poll()、peek() 等,其中 put() 和 take() 分别用于向队列中添加元素和获取队列中的元素,如果队列已满或为空,它们都会阻塞等待;offer() 和 poll() 是非阻塞的方法,当队列已满或为空时,它们会立即返回 false 或 null;peek() 方法则是获取队列头部元素的方法,但不会将其从队列中取出。
需要注意的是,LinkedBlockingQueue 中的元素数量没有上限,但可以在构造函数中指定最大容量。当队列已满时,再往队列中添加元素会被阻塞,直到队列中有空闲位置。
阅读全文