简介
可伸缩的并发ConcurrentNavigableMap 实现。
根据可比较的自然顺序或根据在创建 map 时提供的Comparator对 map 进行排序,具体取决于所使用的构造函数。
可伸缩的并发ConcurrentNavigableMap 实现。
根据可比较的自然顺序或根据在创建 map 时提供的Comparator对 map 进行排序,具体取决于所使用的构造函数。
延迟元素的无限制BlockingQueu,其中元素只能在其延迟到期后才能获取。
当元素的getDelay(TimeUnit.NANOSECONDS)方法返回小于或等于零的值时,就会发生过期。
即使未到期的元素无法使用take或poll删除,它们也被视为普通元素。
此队列不允许 null 元素。
为什么不允许有 null 元素?
其实和其他几篇中类似,这里读者可以阅读下后面的源码解读。
希望读完之后,自己可以得到答案。
基于链接节点的无限制 TransferQueue。
此队列针对任何给定的生产者对元素FIFO(先进先出)进行排序。
队列的开头是某个生产者在队列中停留时间最长的元素。
一个无界BlockingQueue,它使用与类PriorityQueue相同的排序规则,并提供阻塞检索操作。
尽管此队列在逻辑上是不受限制的,但是尝试添加可能由于资源耗尽 OutOfMemoryError而失败。
SynchronousQueue 是这样一种阻塞队列,其中每个 put 必须等待一个 take,反之亦然。
简而言之:线程安全,阻塞。
我们定义两个线程,一个负责写入,一个负责读取。