Module java.base

Class ForkJoinWorkerThread

java.lang.Object
java.lang.Thread
java.util.concurrent.ForkJoinWorkerThread
所有已实现的接口:
Runnable

public class ForkJoinWorkerThread extends Thread
ForkJoinPool 管理的线程,执行 ForkJoinTask。此类仅可用于添加功能,没有涉及调度或执行的可重写方法。但是,您可以重写围绕主任务处理循环的初始化和终止方法。如果您创建这样的子类,还需要提供自定义的 ForkJoinPool.ForkJoinWorkerThreadFactory 来在 ForkJoinPool使用它
自 JDK 版本:
1.7
  • Constructor Details

    • ForkJoinWorkerThread

      protected ForkJoinWorkerThread(ThreadGroup group, ForkJoinPool pool, boolean preserveThreadLocals)
      在给定线程组和池中运行的 ForkJoinWorkerThread,并具有保留 ThreadLocals 的策略。
      参数:
      group - 如果非空,则为此线程的线程组。否则,如果存在安全管理器,则由安全管理器选择线程组,否则设置为当前线程的线程组。
      pool - 此线程工作的池
      preserveThreadLocals - 如果为 true,则始终保留 ThreadLocal 变量的值跨任务;否则它们可能会被清除。
      抛出:
      NullPointerException - 如果池为 null
      自 JDK 版本:
      19
    • ForkJoinWorkerThread

      protected ForkJoinWorkerThread(ForkJoinPool pool)
      在给定池中运行的 ForkJoinWorkerThread。
      参数:
      pool - 此线程工作的池
      抛出:
      NullPointerException - 如果池为 null
  • Method Details

    • getPool

      public ForkJoinPool getPool()
      返回托管此线程的池。
      返回:
    • getPoolIndex

      public int getPoolIndex()
      返回此线程在其池中的唯一索引编号。返回值范围从零到池中可能存在的线程的最大数量(减一),并且在线程的生命周期内不会更改。此方法对于跟踪状态或按工作线程而不是按任务收集结果的应用程序可能有用。
      返回:
      索引编号
    • getQueuedTaskCount

      public int getQueuedTaskCount()
      返回线程队列中任务数量的(非负)估计值。
      返回:
      线程队列中任务数量的(非负)估计值
      自 JDK 版本:
      20
      参见:
    • onStart

      protected void onStart()
      在构造之后但在处理任何任务之前初始化内部状态。如果您重写此方法,必须在方法开头调用 super.onStart()。初始化需要小心:大多数字段必须具有合法的默认值,以确保即使在此线程开始处理任务之前,从其他线程尝试访问也能正常工作。
    • onTermination

      protected void onTermination(Throwable exception)
      执行与终止此工作线程相关的清理。如果您重写此方法,必须在重写方法的末尾调用 super.onTermination
      参数:
      exception - 由于不可恢复的错误导致此线程中止的异常,或者如果正常完成则为 null
    • run

      public void run()
      此方法需要是公共的,但不应显式调用。它执行主运行循环以执行 ForkJoinTask
      指定者:
      run 在接口 Runnable
      覆盖:
      run 在类 Thread