- Thread.start 执行后,调用本地方法,本地方法创建线程后再调用程序的run方法,是调用 Runnable#run 还是 Trhead#run?
答:我认为是调用Thread#run。
线程池相关组件设计
Executor:定义线程提交到线程池执行的接口
ExecutorService:继承自Executor,扩展了线程池相关更丰富的能力接口,例如提交到线程池执行、停止线程等
ScheduledExecutorService:继承自 ExecutorService ,扩展了定时执行相关的能力。
AbstractExecutorService:实现了 ExecutorService
ThreadPoolExecutor:继承自AbstractExecutorService,线程池的具体实现
Executors:线程池工厂
jdk线程池的设计是生产者、消费者模式
设置多少个线程合适?
原则:让CPU的利用率达到100%