并发:线程池

学习:1.先大纲,然后思路优先(适当的提出问题)  2.合理推测

完成上述需要知识,

为了熟悉线程池,提出一些问题

1.线程什么时候创建?

2.线程池主要做什么?

3.无任务执行处于什么状态?

4.提交一个任务,执行逻辑?

5.线程池怎样被销毁?

学习方式:查看ThreadPool.excute,注意下载源码,查看注释

回答问题:

1.线程在执行(excute方法)中,做系列判断;若当前ctl(当前线程数)小于corePoolSize或队列已满,则addWorker(一个worker就是一个工作线程)

2.线程池负责复用线程(减少线程的创建和销毁)和有序队列来处理并发任务(Runable)

3.由于线城池在启动第一个worker时会有个循环,所以如果不自己销毁线程池,那么始终处于running状态

4.小于corePoolSize加线程;否,则加队列;否,则尝试创建临时线程,若失败就执行拒绝策略.

5.调用shutdown方法,内部用Thread.interrupt中断线程

并发:充分发挥CPU多核的性能,并发处理问题

猜你喜欢

转载自www.cnblogs.com/duanding/p/11901557.html