1.线程池的工作原理:

1.1线程池刚创建时,里面没有一个线程。任务队列是作为参数传进来的。不过,就算队列里面有任务,线程池也不会马上执行它们。
1.3当一个线程完成任务时,它会从队列中取下一个任务来执行。
1.4当一个线程无事可做,超过一定的时间(keepAliveTime)时,线程池会判断,如果当前运行的线程数大于corePoolSize时,那么这个线程会被停用掉,所以线程池的所有任务完成后,它最终会收缩到corePoolSize的大小。
2.线程池有哪些配置
线程池可以使用java.util.concurrent.ThreadPoolExecutor来创建,在该类中包含最全参数的构造函数。
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue
workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler)
3.线程池的阻塞队列包含哪几种选择?
1. ArrayBlockingQueue 2. LinkedBlockingQueue 3. PriorityBlockingQueue 4. SynchronousQueue
4.如果线程池已经满了可是还有新的任务提交怎么办?
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227850.html原文链接:https://javaforall.net
