多线程线程池实现原理

三点透视2022-07-21  27

线程池的实现原理 Java线程池实现原理

1.java线程池的实现原理很简单。说白了就是一个线程集workerSet和一个阻塞队列workQueue。当用户向线程池提交一个任务(即一个线程)时,线程池将首先把任务放入工作队列。workerSet中的线程将不断地从工作队列中获取线程,然后执行它们。当工作队列中没有任务时,工作者将阻塞,直到队列中有任务,然后取出它们并继续执行。

2.线程池几个主要参数的作用?

CorePoolSize:指定线程池中有多少线程(工作线程)正在运行。

MaximumPoolSize:该参数仅在工作队列已满且无法添加任务时生效。指定线程池中线程(工作线程)的最大数量。

KeepAliveTime:超过corePoolSize大小的那些线程的存活时间。如果这些线程长时间不执行任务,并且超过keepAliveTime设置的时间,它们就会消亡。

单位:生命周期存在的单位。

工作队列:存储任务的队列。

ThreadFactory:创建线程的工厂。

Handler:当工作队列已满并且线程池中的线程数达到maximumPoolSize时,将执行拒绝策略。

转载请注明原文地址:https://juke.outofmemory.cn/read/836674.html

最新回复(0)