
队列
ITWUYI
这个作者很懒,什么都没留下…
展开
-
Java实现阻塞队列
Java实现阻塞队列 1、生产者向队尾添加元素; 2、消费者向队头消费元素; 3、添加和消费过程是线程安全的; import java.util.LinkedList; import java.util.Queue; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; public class MyBlockingQueueLock<T> { .原创 2020-12-25 13:11:38 · 262 阅读 · 1 评论 -
数据结构(2):队列
数据结构之队列知识点 1、静态队列(用数组实现) 代码实现: public class ArrayQueueDemo { private int arr[]; private int size;//队列的最大容量 private int items;//队列中实际数据的数量 private int front;//头指针 private int rear;//尾指针 public ArrayQueueDemo() { //未设定最大容量时,默认原创 2020-10-20 00:07:29 · 360 阅读 · 1 评论 -
Queue接口
Queue接口知识点 1、使用细节 Queue使用时要尽量避免Collection的add()和remove()方法,而是要使用offer()来加入元素,使用poll()来获取并移出元素。因为offer()和poll()可以通过返回值判断成功与否,而add()和remove()方法在失败的时候会抛出异常。 如果只需要使用数据而不移出该元素,使用 element()或者peek()方法。 2、Queue和LinkedList的关系 LinkedList类实现了Queue接口,因此我们可以把LinkedList原创 2020-10-19 16:24:54 · 486 阅读 · 1 评论 -
JAVA 阻塞队列
JAVA 阻塞队列知识点 阻塞队列,关键字是阻塞,首先先理解阻塞的含义。 在阻塞队列中,线程阻塞有这样的两种情况: 当队列中没有数据的情况下,消费者端的所有线程都会被自动阻塞(挂起),直到有数据放入队列。 当队列中填满数据的情况下,生产者端的所有线程都会被自动阻塞(挂起),直到队列中有空的位置,线程被自动唤醒。 (1)阻塞队列的主要方法 抛出异常:抛出一个异常。 特殊值:返回一个特殊值(null 或 false,视情况而定)。 则塞:在成功操作之前,一直阻塞线程。 超时:放弃前只在最大的时间内阻塞原创 2020-10-10 23:36:30 · 113 阅读 · 0 评论