线程池的实现原理
更新时间: 2025-12-04 14:24:09
1、java线程池的实现原理很简单,说白了就是一个线程集合workerSet和一个阻塞队列workQueue。当用户向线程池提交一个任务(也就是线程)时,线程池会先将任务放入workQueue中。workerSet中的线程会不断的从workQueue中获取线程然后执行。当workQueue中没有任务的时候,worker就会阻塞,直到队列中有任务了就取出来继续执行。
2、线程池的几个主要参数的作用
corePoolSize: 规定线程池有几个线程(worker)在运行。
maximumPoolSize: 当workQueue满了,不能添加任务的时候,这个参数才会生效。规定线程池最多只能有多少个线程(worker)在执行。
keepAliveTime: 超出corePoolSize大小的那些线程的生存时间,这些线程如果长时间没有执行任务并且超过了keepAliveTime设定的时间,就会消亡。
unit: 生存时间对于的单位
workQueue: 存放任务的队列
threadFactory: 创建线程的工厂
handler: 当workQueue已经满了,并且线程池线程数已经达到maximumPoolSize,将执行拒绝策略。
线程池的实现原理 相关文章
- 青岛的邮政编码多少(青岛市黄岛区邮政...
- 汉堡邮编(汉堡邮编查询)
- 四川眉山区号(四川眉山区号是028还...
- 深圳光明区邮政编码多少(深圳光明区的...
- 青岛邮政(青岛邮政招聘)
- 江苏南通邮政编码(江苏南通邮政编码崇...
- 各省市区(各省市区号)
- 加拿大各地区邮编(加拿大各地区邮政编...
- +258是哪个国家的区号(00595...
- 硚口区邮政编码(硚口区邮政编码是多少...
- 南京江北新区邮编(南京江北新区邮编号...
- 潍坊市奎文区的邮政编码(山东省潍坊市...
- 绍兴市邮编(绍兴市邮编号码是多少)
- 深圳罗湖邮政编码是多少(深圳罗湖区邮...
- 国家法律职业资格考试实施办法(国家法...
- 青岛城阳邮编(青岛城阳邮编号多少)
- +81(81)
- 广东省东莞市寮步镇邮政编码(东莞市寮...
- 西湖区邮政编码(西湖区邮政编码多少)
- 卡塔尔多哈邮编(卡塔尔多哈邮编是多少...
