Added in API level 21

ForkJoinWorkerThread

open class ForkJoinWorkerThread : Thread
kotlin.Any
   ↳ java.lang.Thread
   ↳ java.util.concurrent.ForkJoinWorkerThread

A thread managed by a ForkJoinPool, which executes ForkJoinTasks. This class is subclassable solely for the sake of adding functionality -- there are no overridable methods dealing with scheduling or execution. However, you can override initialization and termination methods surrounding the main task processing loop. If you do create such a subclass, you will also need to supply a custom ForkJoinPool.ForkJoinWorkerThreadFactory to java.util.concurrent.ForkJoinPool#ForkJoinPool(int,ForkJoinWorkerThreadFactory,java.lang.Thread.UncaughtExceptionHandler,boolean,int,int,int,Predicate,long,java.util.concurrent.TimeUnit) in a ForkJoinPool.

Summary

Inherited constants
Protected constructors
ForkJoinWorkerThread(group: ThreadGroup!, pool: ForkJoinPool!, preserveThreadLocals: Boolean)

Creates a ForkJoinWorkerThread operating in the given thread group and pool, and with the given policy for preserving ThreadLocals.

Creates a ForkJoinWorkerThread operating in the given pool.

Public methods
open ForkJoinPool!

Returns the pool hosting this thread.

open Int

Returns the unique index number of this thread in its pool.

open Int

{@return a (non-negative) estimate of the number of tasks in the * thread's queue}

open Unit
run()

This method is required to be public, but should never be called explicitly.

Protected methods
open Unit

Initializes internal state after construction but before processing any tasks.

open Unit
onTermination(exception: Throwable!)

Performs cleanup associated with termination of this worker thread.

Inherited functions

Protected constructors

ForkJoinWorkerThread

protected ForkJoinWorkerThread(
    group: ThreadGroup!,
    pool: ForkJoinPool!,
    preserveThreadLocals: Boolean)

Creates a ForkJoinWorkerThread operating in the given thread group and pool, and with the given policy for preserving ThreadLocals.

Parameters
group ThreadGroup!: if non-null, the thread group for this thread. Otherwise, the thread group is chosen by the security manager if present, else set to the current thread's thread group.
pool ForkJoinPool!: the pool this thread works in
preserveThreadLocals Boolean: if true, always preserve the values of ThreadLocal variables across tasks; otherwise they may be cleared.
Exceptions
java.lang.NullPointerException if pool is null

ForkJoinWorkerThread

Added in API level 21
protected ForkJoinWorkerThread(pool: ForkJoinPool!)

Creates a ForkJoinWorkerThread operating in the given pool.

Parameters
pool ForkJoinPool!: the pool this thread works in
Exceptions
java.lang.NullPointerException if pool is null

Public methods

getPool

Added in API level 21
open fun getPool(): ForkJoinPool!

Returns the pool hosting this thread.

Return
ForkJoinPool! the pool

getPoolIndex

Added in API level 21
open fun getPoolIndex(): Int

Returns the unique index number of this thread in its pool. The returned value ranges from zero to the maximum number of threads (minus one) that may exist in the pool, and does not change during the lifetime of the thread. This method may be useful for applications that track status or collect results per-worker-thread rather than per-task.

Return
Int the index number

getQueuedTaskCount

open fun getQueuedTaskCount(): Int

{@return a (non-negative) estimate of the number of tasks in the * thread's queue}

run

Added in API level 21
open fun run(): Unit

This method is required to be public, but should never be called explicitly. It performs the main run loop to execute ForkJoinTasks.

Protected methods

onStart

Added in API level 21
protected open fun onStart(): Unit

Initializes internal state after construction but before processing any tasks. If you override this method, you must invoke super.onStart() at the beginning of the method. Initialization requires care: Most fields must have legal default values, to ensure that attempted accesses from other threads work correctly even before this thread starts processing tasks.

onTermination

Added in API level 21
protected open fun onTermination(exception: Throwable!): Unit

Performs cleanup associated with termination of this worker thread. If you override this method, you must invoke super.onTermination at the end of the overridden method.

Parameters
exception Throwable!: the exception causing this thread to abort due to an unrecoverable error, or null if completed normally