ITPub博客

首页 > IT职业 > IT职场 > java Worker类怎么用?

java Worker类怎么用?

IT职场 作者:emanda 时间:2021-09-11 09:55:28 0 删除 编辑

说明

1、Worker是ThreadPoolexecutor的内部类,主要用于维持线程执行任务的中断控制状态。

2、在实现Runnable接口的同时继承AQS,实现Runnable接口意味着Worker是线程。

实例

    private final class Worker
      extends AbstractQueuedSynchronizer
      implements Runnable{
        /**
         * This class will never be serialized, but we provide a
         * serialVersionUID to suppress a javac warning.
         */
        private static final long serialVersionUID = 6138294804551838833L;
 
        /** Thread this worker is running in.  Null if factory fails. */
       // 执行任务的线程
        final Thread thread;
        /** Initial task to run.  Possibly null. */
       // 执行的任务
        Runnable firstTask;
        /** Per-thread task counter */
        volatile long completedTasks;
 
        /**
         * Creates with given first task and thread from ThreadFactory.
         * @param firstTask the first task (null if none)
         */
        Worker(Runnable firstTask) {
          // 新建线程的时候,设置state -1 是为了防止线程还未执行时(线程只有在执行的时候才会被中断),就被     // 其它线程显式调用shutdown方法中断了,因为中断是要判断state大于等于0才会中断
          setState(-1);
          this.firstTask = firstTask;
          // 新建了一个线程
          this.thread = getThreadFactory().newThread(this);
        }
 
        /** Delegates main run loop to outer runWorker  */
        public void run() {
            runWorker(this);
        }

以上就是java Worker类的用法,希望对大家有所帮助。更多Java学习指路:Java基础

本教程操作环境:windows7系统、java10版,DELL G3电脑。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1741/viewspace-2829968/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: ps黑白快捷键
请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    208
  • 访问量
    2567