SynchronousQueue是一个不存储元素的阻塞队列。当队列有1个元素时,必须被消费才可以再存入 *测试代码中可看到 put一个元素立马能take一个元素 ...
分类:
其他好文 时间:
2019-05-13 09:22:28
阅读次数:
101
锁的实现 锁的实现其实很简单,主要使用Java中synchronized关键字。 公平锁的实现 上面的锁的实现严格意义上说是会存在线程饥饿现象的(也就是说在多线程竞争的条件下,存在一种极端情况,即某个线程一直阻塞在锁上,永远都是其他线程被优先唤醒,导致自己得不到执行)。下面是公平锁的实现: 读写锁的 ...
分类:
编程语言 时间:
2019-05-09 19:52:27
阅读次数:
325
DelayQueue是阻塞队列吗?
DelayQueue的实现方式?
DelayQueue主要用于什么场景?
分类:
编程语言 时间:
2019-04-29 12:42:03
阅读次数:
158
LinkedTransferQueue是什么东东?
LinkedTransferQueue是怎么实现阻塞队列的?
LinkedTransferQueue是怎么控制并发安全的?
分类:
编程语言 时间:
2019-04-28 09:43:27
阅读次数:
122
ConcurrentLinkedQueue是阻塞队列吗?
ConcurrentLinkedQueue如何保证并发安全?
ConcurrentLinkedQueue能用于线程池吗?
分类:
编程语言 时间:
2019-04-28 09:23:04
阅读次数:
112
ConcurrentLinkedQueue是阻塞队列吗? ConcurrentLinkedQueue如何保证并发安全? ConcurrentLinkedQueue能用于线程池吗? ...
分类:
编程语言 时间:
2019-04-28 00:01:57
阅读次数:
168
LinkedTransferQueue是什么东东? LinkedTransferQueue是怎么实现阻塞队列的? LinkedTransferQueue是怎么控制并发安全的? ...
分类:
编程语言 时间:
2019-04-27 19:36:00
阅读次数:
97
SynchronousQueue是一个不存储元素的阻塞队列。每一个put操作必须等待一个take操作,否则不能继续添加元素。SynchronousQueue可以看成是一个传球手,负责把生产者线程处理的数据直接传递给消费者线程。队列本身并不存储任何元素,非常适合于传递性场景,比如在一个线程中使用的数据 ...
分类:
编程语言 时间:
2019-04-25 18:51:05
阅读次数:
154
不像ArrayBlockingQueue、LinkedBlockingDeque之类的阻塞队列依赖AQS实现并发操作,SynchronousQueue直接使用CAS实现线程的安全访问。由于源码中充斥着大量的CAS代码,不易于理解,所以按照笔者的风格,接下来会使用简单的示例来描述背后的实现模型。 队列 ...
分类:
其他好文 时间:
2019-04-24 17:28:34
阅读次数:
136
背景:面试中会要求对5中线程池作分析。所以要熟知线程池的运行细节,如CachedThreadPool会引发oom吗? java线程池与五种常用线程池策略使用与解析 可选择的阻塞队列BlockingQueue详解 首先看一下新任务进入时线程池的执行策略: 如果运行的线程少于corePoolSize,则 ...
分类:
编程语言 时间:
2019-04-23 09:24:20
阅读次数:
221