线程池的实现原理 Java线程池实现原理
1.java线程池的实现原理很简单。说白了就是一个线程集workerSet和一个阻塞队列workQueue。当用户向线程池提交一个任务(即一个线程)时,线程池将首先把任务放入工作队列。workerSet中的线程将不断地从工作队列中获取线程,然后执行它们。当工作队列中没有任务时,工作者将阻塞,直到队列中有任务,然后取出它们并继续执行。
2.线程池几个主要参数的作用?
CorePoolSize:指定线程池中有多少线程(工作线程)正在运行。
MaximumPoolSize:该参数仅在工作队列已满且无法添加任务时生效。指定线程池中线程(工作线程)的最大数量。
KeepAliveTime:超过corePoolSize大小的那些线程的存活时间。如果这些线程长时间不执行任务,并且超过keepAliveTime设置的时间,它们就会消亡。
单位:生命周期存在的单位。
工作队列:存储任务的队列。
ThreadFactory:创建线程的工厂。
Handler:当工作队列已满并且线程池中的线程数达到maximumPoolSize时,将执行拒绝策略。