模块 java.base
 java.lang

接口 Thread.Builder

所有已知的子接口:
Thread.Builder.OfPlatformPREVIEW , Thread.Builder.OfVirtualPREVIEW
封闭类:
Thread

public static sealed interface Thread.Builder permits Thread.Builder.OfPlatform PREVIEW , Thread.Builder.OfVirtual PREVIEW (not exhaustive)
Builder 是 Java 平台的预览 API。
程序只能在启用预览功能时使用 Builder
预览功能可能会在未来的版本中删除,或升级为 Java 平台的永久功能。
Thread ThreadFactory 对象的生成器。

Builder 定义了设置 Thread 属性的方法,例如线程 name 。这包括原本为 遗传 的属性。设置后,将使用以下方法创建 ThreadThreadFactory

  • unstarted 方法创建一个新的 unstarted Thread 来运行任务。必须调用 Threadstart 方法来安排线程执行。
  • start 方法创建一个新的 Thread 来运行任务并安排线程执行。
  • factory 方法创建一个 ThreadFactory

Thread.Builder 不是线程安全的。构建器的 factory() 方法返回的 ThreadFactory 是线程安全的。

除非另有说明,否则将 null 参数传递给此接口中的方法会导致抛出 NullPointerException

自从:
19
参见:
  • 方法详情

    • name

      Thread.Builder PREVIEW  name(String  name)
      设置线程名称。
      参数:
      name - 线程名称
      返回:
      这个建设者
    • name

      Thread.Builder PREVIEW  name(String  prefix, long start)
      将线程名称设置为字符串前缀和计数器值的字符串表示形式的串联。计数器的初始值为 start 。它在使用此构建器创建 Thread 后递增,以便使用新计数器值命名下一个线程。使用此构建器创建的 ThreadFactory 以计数器的当前值作为种子。在 newThread 用于创建 Thread 之后, ThreadFactory 递增其计数器副本。
      API 注意:
      以下示例创建一个构建器,该构建器被调用两次以启动名为“worker-0”和“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"
       
      参数:
      prefix - 线程名称前缀
      start - 计数器的起始值
      返回:
      这个建设者
      抛出:
      IllegalArgumentException - 如果开始为负
    • allowSetThreadLocals

      Thread.Builder PREVIEW  allowSetThreadLocals(boolean allow)
      设置是否允许线程为其 线程本地 变量的副本设置值。默认是允许。如果不允许,则线程使用 ThreadLocal.set(Object) 方法为线程局部设置值的任何尝试都会抛出 UnsupportedOperationException 。任何使用 setContextClassLoader 设置线程的上下文类加载器的尝试也会抛出。当不允许使用线程局部变量时,ThreadLocal.get() 方法总是返回 初始值
      API 注意:
      此方法适用于存在大量线程的情况,并且由于线程局部性而导致潜在的无限内存使用是一个问题。不允许线程设置其线程局部变量的副本会在运行时产生异常的可能性,因此在使用线程调用任意代码时需要格外小心。
      参数:
      allow - true 允许,false 不允许
      返回:
      这个建设者
    • inheritInheritableThreadLocals

      Thread.Builder PREVIEW  inheritInheritableThreadLocals(boolean inherit)
      设置线程是否从构造线程继承可继承线程本地变量的初始值。默认是继承。

      allowSetThreadLocals(boolean) 用于禁止线程拥有自己的线程局部变量副本时, InheritableThreadLocal 的初始值永远不会被继承。

      参数:
      inherit - true 继承,false 不继承
      返回:
      这个建设者
    • uncaughtExceptionHandler

      Thread.Builder PREVIEW  uncaughtExceptionHandler(Thread.UncaughtExceptionHandler  ueh)
      设置未捕获的异常处理程序。
      参数:
      ueh - 未捕获的异常处理程序
      返回:
      这个建设者
    • unstarted

      Thread  unstarted(Runnable  task)
      从构建器的当前状态创建一个新的 Thread 来运行给定的任务。必须调用 Threadstart 方法来安排线程执行。
      参数:
      task - 线程执行时要运行的对象
      返回:
      一个新的未启动线程
      抛出:
      SecurityException - 如果被安全管理器拒绝(参见 创建平台线程时与安全管理器的交互
      参见:
    • start

      Thread  start(Runnable  task)
      从构建器的当前状态创建一个新的 Thread 并安排它执行。
      参数:
      task - 线程执行时要运行的对象
      返回:
      一个新开始的线程
      抛出:
      SecurityException - 如果被安全管理器拒绝(参见 创建平台线程时与安全管理器的交互
      参见:
    • factory

      ThreadFactory  factory()
      返回一个 ThreadFactory 以从构建器的当前状态创建线程。返回的线程工厂可供多个并发线程安全使用。
      返回:
      创建线程的线程工厂