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源代码分析

Java中的线程池——ThreadPoolExecutor的原理

java笔记java中的线程池ThreadPoolExecutor的原理和使用