当前位置:网站首页>阻塞队列与线程池原理
阻塞队列与线程池原理
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

边栏推荐
- 「应用架构」TOGAF建模:企业可管理性图
- Static关键字及应用,继承的概念
- 【企业架构】敏捷与企业架构:战略联盟
- Basic concepts of concurrency, operations, containers
- 【元宇宙欧米说】看UCOUCO如何将行为艺术融入元宇宙
- Excel绘制统计图
- "Guangzhou highway engineering measures for the supervision and administration of production safety, and revised from six aspects
- 第三章 搜索与图论(三)
- 用高质量图像标注数据加速AI商业化落地
- The first offline workshop in 2022!Data application experience day for application developers is coming | TiDB Workshop Day
猜你喜欢
随机推荐
多元线性回归分析(Stata)
Optimistic and pessimistic locking
【Prometheus】Node Exporter常用查询PromQL 语句大总结
【API 管理】什么是 API 管理,为什么它很重要?
人
Vivado时序约束中Tcl命令的对象及属性
【数据仓库】什么是 Azure Synapse,它与 Azure Data Bricks 有何不同?
2022-08-09:以下go语言代码输出什么?A:否,会 panic;B:是,能正确运行;C:不清楚,看投票结果。
Which is the strongest workflow engine for "Technology Selection"?Chief Architecture Helps You Pick
Singleton pattern base class
【微服务架构】为故障设计微服务架构
UE4 Sequence添加基础动画效果 (04-在序列中使用粒子效果)
Nvidia's gaming graphics card revenue plummets / Google data center explosion injures 3 people / iPhone battery percentage returns... More news today is here...
多线程浅谈
12 【其它组合式API】
幂次方(暑假每日一题 20)
「应用架构」TOGAF建模:应用程序迁移图
【软考 系统架构设计师】系统可靠性分析与设计① 系统可靠性分析
Oracle rac所在的网络要割接,停掉其中一个rac节点,这种方案可行吗?
Relearn bubble sort








