Interface Thread.Builder

All Known Subinterfaces:
Thread.Builder.OfPlatform,Thread.Builder.OfVirtual
Enclosing class:
Thread

public static sealed interfaceThread.BuilderpermitsThread.Builder.OfPlatform,Thread.Builder.OfVirtual
A builder forThread andThreadFactory objects.

Builder defines methods to setThread properties such as the threadname. This includes properties that would otherwise beinherited. Once set, aThread orThreadFactory is created with the following methods:

  • Theunstarted method creates a newunstartedThread to run a task. TheThread'sstart method must be invoked to schedule the thread to execute.
  • Thestart method creates a new Thread to run a task and schedules the thread to execute.
  • Thefactory method creates aThreadFactory.

AThread.Builder is not thread safe. TheThreadFactory returned by the builder'sfactory() method is thread safe.

Unless otherwise specified, passing a null argument to a method in this interface causes aNullPointerException to be thrown.

Since:
21
See Also:
  • Method Details

    • name

      Thread.Builder name(String name)
      Sets the thread name.
      Parameters:
      name - thread name
      Returns:
      this builder
    • name

      Thread.Builder name(String prefix, long start)
      Sets the thread name to be the concatenation of a string prefix and the string representation of a counter value. The counter's initial value isstart. It is incremented after aThread is created with this builder so that the next thread is named with the new counter value. AThreadFactory created with this builder is seeded with the current value of the counter. The ThreadFactory increments its copy of the counter afternewThread is used to create aThread.
      API Note:
      The following example creates a builder that is invoked twice to start two threads named "worker-0" and "worker-1".
        Thread.Builder builder = Thread.ofPlatform().name("worker-", 0);  Thread t1 = builder.start(task1);   // name "worker-0"  Thread t2 = builder.start(task2);   // name "worker-1"
      Parameters:
      prefix - thread name prefix
      start - the starting value of the counter
      Returns:
      this builder
      Throws:
      IllegalArgumentException - if start is negative
    • inheritInheritableThreadLocals

      Thread.Builder inheritInheritableThreadLocals(boolean inherit)
      Sets whether the thread inherits the initial values ofinheritable-thread-local variables from the constructing thread. The default is to inherit.
      Parameters:
      inherit -true to inherit,false to not inherit
      Returns:
      this builder
    • uncaughtExceptionHandler

      Thread.Builder uncaughtExceptionHandler(Thread.UncaughtExceptionHandler ueh)
      Sets the uncaught exception handler.
      Parameters:
      ueh - uncaught exception handler
      Returns:
      this builder
    • unstarted

      Thread unstarted(Runnable task)
      Creates a newThread from the current state of the builder to run the given task. TheThread'sstart method must be invoked to schedule the thread to execute.
      Parameters:
      task - the object to run when the thread executes
      Returns:
      a new unstarted Thread
      See Also:
    • start

      Thread start(Runnable task)
      Creates a newThread from the current state of the builder and schedules it to execute.
      Parameters:
      task - the object to run when the thread executes
      Returns:
      a new started Thread
      See Also:
    • factory

      ThreadFactory factory()
      Returns aThreadFactory to create threads from the current state of the builder. The returned thread factory is safe for use by multiple concurrent threads.
      Returns:
      a thread factory to create threads