模块 java.base

类 ForkJoinWorkerThread

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

public class ForkJoinWorkerThread extends Thread
ForkJoinPool 管理的线程,它执行 ForkJoinTask s。此类可继承只是为了添加功能——没有处理调度或执行的可重写方法。但是,您可以覆盖围绕主任务处理循环的初始化和终止方法。如果您确实创建了这样一个子类,您还需要在 ForkJoinPool 中为 用它 提供自定义 ForkJoinPool.ForkJoinWorkerThreadFactory
自从:
1.7
  • 构造方法详细信息

    • ForkJoinWorkerThread

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

      protected ForkJoinWorkerThread(ForkJoinPool  pool)
      创建在给定池中运行的 ForkJoinWorkerThread。
      参数:
      pool - 这个线程工作的池
      抛出:
      NullPointerException - 如果池为空
  • 方法详情

    • getPool

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

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

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

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

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

      public void run()
      此方法需要公开,但绝不能显式调用。它执行主运行循环以执行ForkJoinTask s。
      指定者:
      run 在接口 Runnable
      重写:
      run 在类 Thread