java.lang.Object
java.lang.Thread
java.util.concurrent.ForkJoinWorkerThread
- 所有已实现的接口:
-
Runnable
由
ForkJoinPool
管理的线程,执行 ForkJoinTask
。此类仅可用于添加功能,没有涉及调度或执行的可重写方法。但是,您可以重写围绕主任务处理循环的初始化和终止方法。如果您创建这样的子类,还需要提供自定义的 ForkJoinPool.ForkJoinWorkerThreadFactory
来在 ForkJoinPool
中 使用它。
- 自 JDK 版本:
- 1.7
-
Nested Class Summary
Nested classes/interfaces declared in class java.lang.Thread
Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler
-
Field Summary
Fields declared in class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
-
Constructor Summary
ModifierConstructorDescriptionprotected
ForkJoinWorkerThread
(ThreadGroup group, ForkJoinPool pool, boolean preserveThreadLocals) 在给定线程组和池中运行的 ForkJoinWorkerThread,并具有保留 ThreadLocals 的策略。protected
在给定池中运行的 ForkJoinWorkerThread。 -
Method Summary
Modifier and TypeMethodDescriptiongetPool()
返回托管此线程的池。int
返回此线程在其池中的唯一索引编号。int
返回线程队列中任务数量的(非负)估计值。protected void
onStart()
在构造之后但在处理任何任务之前初始化内部状态。protected void
onTermination
(Throwable exception) 执行与终止此工作线程相关的清理。void
run()
此方法需要是公共的,但不应显式调用。Methods declared in class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, suspend, threadId, toString, yield
-
Constructor Details
-
ForkJoinWorkerThread
在给定线程组和池中运行的 ForkJoinWorkerThread,并具有保留 ThreadLocals 的策略。- 参数:
-
group
- 如果非空,则为此线程的线程组。否则,如果存在安全管理器,则由安全管理器选择线程组,否则设置为当前线程的线程组。 -
pool
- 此线程工作的池 -
preserveThreadLocals
- 如果为 true,则始终保留 ThreadLocal 变量的值跨任务;否则它们可能会被清除。 - 抛出:
-
NullPointerException
- 如果池为 null - 自 JDK 版本:
- 19
-
ForkJoinWorkerThread
在给定池中运行的 ForkJoinWorkerThread。- 参数:
-
pool
- 此线程工作的池 - 抛出:
-
NullPointerException
- 如果池为 null
-
-
Method Details
-
getPool
返回托管此线程的池。- 返回:
- 池
-
getPoolIndex
public int getPoolIndex()返回此线程在其池中的唯一索引编号。返回值范围从零到池中可能存在的线程的最大数量(减一),并且在线程的生命周期内不会更改。此方法对于跟踪状态或按工作线程而不是按任务收集结果的应用程序可能有用。- 返回:
- 索引编号
-
getQueuedTaskCount
public int getQueuedTaskCount()返回线程队列中任务数量的(非负)估计值。- 返回:
- 线程队列中任务数量的(非负)估计值
- 自 JDK 版本:
- 20
- 参见:
-
onStart
protected void onStart()在构造之后但在处理任何任务之前初始化内部状态。如果您重写此方法,必须在方法开头调用super.onStart()
。初始化需要小心:大多数字段必须具有合法的默认值,以确保即使在此线程开始处理任务之前,从其他线程尝试访问也能正常工作。 -
onTermination
执行与终止此工作线程相关的清理。如果您重写此方法,必须在重写方法的末尾调用super.onTermination
。- 参数:
-
exception
- 由于不可恢复的错误导致此线程中止的异常,或者如果正常完成则为null
-
run
public void run()此方法需要是公共的,但不应显式调用。它执行主运行循环以执行ForkJoinTask
。
-