1.ThreadPoolExecutor创建线程池的构造函数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runna ...
分类:
编程语言 时间:
2019-12-22 18:09:37
阅读次数:
82
概念阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。应用阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生 ... ...
分类:
编程语言 时间:
2019-12-12 01:14:35
阅读次数:
93
1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。 ...
分类:
其他好文 时间:
2019-12-10 18:38:55
阅读次数:
96
生产者 package com.java.se.producer; import java.util.concurrent.BlockingQueue; public class Producer implements Runnable{ private BlockingQueue<Integer> ...
分类:
其他好文 时间:
2019-12-10 00:35:54
阅读次数:
108
LinkedTransferQueue 功能 全名 简述 基于链表的的无界队列。队列的头是某个生产者在队列中停留时间最长的元素。队列的尾部是某个生产者在队列中时间最短的元素。 注意,与大多数集合不同,size方法不是一个常量时间操作。由于这些队列的异步性,确定当前元素的数量需要遍历元素,因此如果在遍 ...
分类:
其他好文 时间:
2019-12-06 19:16:37
阅读次数:
96
1.背景: countDownLatch是在java1.5被引入,跟它一起被引入的工具类还有CyclicBarrier、Semaphore、concurrentHashMap和BlockingQueue。 存在于java.util.cucurrent包下。 2.概念 countDownLatch这个 ...
分类:
其他好文 时间:
2019-11-19 15:29:57
阅读次数:
64
一、CountDownLatch 1.背景: (1)countDownLatch是在java1.5被引入,跟它一起被引入的工具类还有CyclicBarrier、Semaphore、concurrentHashMap和BlockingQueue。 (2)存在于java.util.cucurrent包下 ...
分类:
其他好文 时间:
2019-11-17 01:34:58
阅读次数:
68
一 .什么是 Disruptor 从功能上来看,Disruptor 是实现了“队列”的功能,而且是一个有界队列。那么它的应用场景自然就是“生产者-消费者”模型的应用场合了。 可以拿 JDK 的 BlockingQueue 做一个简单对比,以便更好地认识 Disruptor 是什么。 我们知道 Blo ...
分类:
其他好文 时间:
2019-10-28 01:04:20
阅读次数:
80
1.背景: countDownLatch是在java1.5被引入,跟它一起被引入的工具类还有CyclicBarrier、Semaphore、concurrentHashMap和BlockingQueue。 存在于java.util.cucurrent包下。 2.概念 countDownLatch这个 ...
分类:
其他好文 时间:
2019-10-27 10:47:23
阅读次数:
70
什么是阻塞队列?如何使用阻塞队列来实现生产者-消费者模型?java.util.concurrent.BlockingQueue的特性是:当队列是空的时,从队列中获取或删除元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。阻塞队列不接受空值,当你尝试向队列中添加空值的时候,它会抛出NullPointerException。阻塞队列的实现都是线程安全的,所有的查询方法都是原子的并
分类:
其他好文 时间:
2019-10-15 10:06:45
阅读次数:
96