Java:ThreadPoolExecutor中的Worker
Posted bdmh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java:ThreadPoolExecutor中的Worker相关的知识,希望对你有一定的参考价值。
在文章《从源码看ThreadPoolExecutor的执行步骤》中已经讲过了ThreadPoolExecutor的执行步骤,里面提到了一个内部类Worker,它就是负责具体执行任务的,今天就来说说它。
private final class Worker
extends AbstractQueuedSynchronizer
implements Runnable
//worker的工作线程,如果创建失败则为null
final Thread thread;
//初始要执行的任务,可以为空
//poolExecutor.execute时执行addWorker时传入
Runnable firstTask;
//每个线程的任务计数
volatile long completedTasks;
//构造方法,传入firstTask
Worker(Runnable firstTask)
setState(-1); // inhibit interrupts until runWorker
this.firstTask = firstTask;
//创建线程,并传入当前worker对象,作为thread的target
this.thread = getThreadFactory().newThread(this);
//执行具体任务
public void run()
runWorker(this);
回到addWorker看一下worker的创建过程。
以上是关于Java:ThreadPoolExecutor中的Worker的主要内容,如果未能解决你的问题,请参考以下文章
Java:ThreadPoolExecutor中的Worker
Java:ThreadPoolExecutor中的Worker
Java: 线程池(ThreadPoolExecutor)中的参数说明
Java中的线程池——ThreadPoolExecutor源代码分析