当ThreadPoolExecutor执行execute方法的时候,会调用addWorker()方法开启一个线程去执行task任务或者将task任务添加到queue阻塞队列中。内部类Worker是ThreadPoolExecutor的核心,Worker本身实现了Runnable接口,start工作线程会执行Worker的run()方法,调用runWorker()方法去执行task任务的run()方法,执行结束后,不断的循环从getTask()方法的queue阻塞队列中夺取task任务,如果queue队列没有数据会被阻塞,线程也会被阻塞,通过getTask()来控制工作线程的生命,如果getTask()返回为null,则线程执行结束,退出线程队列。这便是线程池的执行流程。
简要分析ThreadPoolExecutor运行过程
最新推荐文章于 2024-04-28 07:00:00 发布