当前位置:网站首页>阻塞队列与线程池原理
阻塞队列与线程池原理
2022-08-10 09:37:00 【每天都要喜滋滋】
阻塞
- 取值时,队列为空,取不到阻塞
- 存值时,队列已满,放不进去而阻塞
BlockingQueue
- add 非阻塞 向一个满的队列里存元素失败时会抛出异常
- remove非阻塞 向一个空的队列里取元素失败时会抛出异常
- offer 向一个满的队列里存元素失败时会返回false
- poll 向一个空的队列里取元素失败时会返回null
- take 阻塞
- put 阻塞
阻塞队列
- ArrayBlockingQueue:一个由数组结构组成的有界阻塞队列。
- Linked BlockingQueue:一个由链表结构组成的有界阻塞队列。
- PriorityBlockingQueue:一个支持优先级排序的无界阻塞队列。
- DelayQueue:一个使用优先级队列实现的无界阻塞队列。
- SynchronousQueue:一个不存储元素的阻塞队列。
- LinkedTransferQueue:一个由链表结构组成的无界阻塞队列。
- LinkedBlockingDeque:一个由链表结构组成的双向阻塞队列。
线程池
- Executor interface
- ExecutorService interface
- ThreadPoolExecutor class
- execute() 不关心返回结果
- submit() 关心返回结果
- shutdown() 尝试关闭一个线程,当前没有执行任务的线程,进行中断
- shutdownNow() 不管当前任务有无执行线程,都尝试进行中断
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler) {
}
任务特性,cpu密集型、IO密集型、混合型
maximumPoolSize:cpu密集型 ,不要超过CPU的核心数 ,最多+1 Runtime.getRuntime().availableProcessors()
maximumPoolSize:IO密集型(磁盘和网络) ,CPU的核心数x2
边栏推荐
猜你喜欢
2022 首期线下 Workshop!面向应用开发者们的数据应用体验日来了 | TiDB Workshop Day
Tencent releases the second-generation version of the quadruped robot Max, which completes jumps and somersaults on the plum blossom pile
「微服务架构」编曲与编舞——让系统协同工作的不同模式
90.(cesium之家)cesium高度监听事件
UE4 Sequence添加基础动画效果 (04-在序列中使用粒子效果)
UE4 Sequence添加基础动画效果 (05-蓝图触发Sequence)
【数据架构】分布式数据网格作为集中式数据单体的解决方案
Basic concepts, structures, and classes of thread pools
win下的开发环境变量记录
MUDA:对齐特定域的分布和分类器以实现来自多源域的跨域分类
随机推荐
将博客搬至CSDN
Hugo NexT主题升级记录
DAY25: Logic vulnerability recurrence
The Generation of Matlab Symbolic Functions and the Calculation of Its Function Values
「微服务架构」编曲与编舞——让系统协同工作的不同模式
"Guangzhou highway engineering measures for the supervision and administration of production safety, and revised from six aspects
关于判断单峰数组的几种方法
【数据仓库】什么是 Azure Synapse,它与 Azure Data Bricks 有何不同?
shell遍历文件夹并输出
13 【script setup 总结】
并发的基本概念,操作,容器
2022-08-09 第六小组 瞒春 学习笔记
「业务架构」TOGAF建模:组织分解图(组织映射)
第三章 搜索与图论(三)
《广州市公路工程安全生产监督管理办法》印发,从六大方面进行修订
Oracle rac所在的网络要割接,停掉其中一个rac节点,这种方案可行吗?
Optimistic and pessimistic locking
【Software Exam System Architect】Case Analysis ⑥ Web Application System Architecture Design
【元宇宙欧米说】听兔迷兔如何从虚拟到现实创造潮玩新时代
【分布式】资源与事务:可观测性的基本二重性