- 封闭类:
Thread
public static sealed interface Thread.Builder permits Thread.Builder.OfPlatform PREVIEW , Thread.Builder.OfVirtual PREVIEW (not exhaustive)
Builder 是 Java 平台的预览 API。
预览功能可能会在未来的版本中删除,或升级为 Java 平台的永久功能。
Thread 和 ThreadFactory 对象的生成器。
Builder 定义了设置 Thread 属性的方法,例如线程 name 。这包括原本为 遗传 的属性。设置后,将使用以下方法创建 Thread 或 ThreadFactory:
- unstarted 方法创建一个新的 unstarted
Thread来运行任务。必须调用Thread的start方法来安排线程执行。 - start 方法创建一个新的
Thread来运行任务并安排线程执行。 - factory 方法创建一个
ThreadFactory。
Thread.Builder 不是线程安全的。构建器的 factory() 方法返回的 ThreadFactory 是线程安全的。
除非另有说明,否则将 null 参数传递给此接口中的方法会导致抛出 NullPointerException。
- 自从:
- 19
- 参见:
-
内部类总结
内部类修饰符和类型接口描述static interface预览。用于创建创建平台线程的平台Thread或ThreadFactory的构建器。static interface预览。用于创建创建虚拟线程的虚拟Thread或ThreadFactory的构建器。 -
方法总结
修饰符和类型方法描述allowSetThreadLocals(boolean allow) 设置是否允许线程为其 线程本地 变量的副本设置值。factory()返回一个ThreadFactory以从构建器的当前状态创建线程。inheritInheritableThreadLocals(boolean inherit) 设置线程是否从构造线程继承可继承线程本地变量的初始值。设置线程名称。将线程名称设置为字符串前缀和计数器值的字符串表示形式的串联。从构建器的当前状态创建一个新的Thread并安排它执行。设置未捕获的异常处理程序。从构建器的当前状态创建一个新的Thread来运行给定的任务。
-
方法详情
-
name
设置线程名称。- 参数:
name- 线程名称- 返回:
- 这个建设者
-
name
将线程名称设置为字符串前缀和计数器值的字符串表示形式的串联。计数器的初始值为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
设置是否允许线程为其 线程本地 变量的副本设置值。默认是允许。如果不允许,则线程使用ThreadLocal.set(Object)方法为线程局部设置值的任何尝试都会抛出UnsupportedOperationException。任何使用setContextClassLoader设置线程的上下文类加载器的尝试也会抛出。当不允许使用线程局部变量时,ThreadLocal.get()方法总是返回 初始值。- API 注意:
- 此方法适用于存在大量线程的情况,并且由于线程局部性而导致潜在的无限内存使用是一个问题。不允许线程设置其线程局部变量的副本会在运行时产生异常的可能性,因此在使用线程调用任意代码时需要格外小心。
- 参数:
allow-true允许,false不允许- 返回:
- 这个建设者
-
inheritInheritableThreadLocals
设置线程是否从构造线程继承可继承线程本地变量的初始值。默认是继承。当
allowSetThreadLocals(boolean)用于禁止线程拥有自己的线程局部变量副本时,InheritableThreadLocal的初始值永远不会被继承。- 参数:
inherit-true继承,false不继承- 返回:
- 这个建设者
-
uncaughtExceptionHandler
设置未捕获的异常处理程序。- 参数:
ueh- 未捕获的异常处理程序- 返回:
- 这个建设者
-
unstarted
- 参数:
task- 线程执行时要运行的对象- 返回:
- 一个新的未启动线程
- 抛出:
SecurityException- 如果被安全管理器拒绝(参见 创建平台线程时与安全管理器的交互 )- 参见:
-
start
从构建器的当前状态创建一个新的Thread并安排它执行。- 参数:
task- 线程执行时要运行的对象- 返回:
- 一个新开始的线程
- 抛出:
SecurityException- 如果被安全管理器拒绝(参见 创建平台线程时与安全管理器的交互 )- 参见:
-
factory
ThreadFactory factory()返回一个ThreadFactory以从构建器的当前状态创建线程。返回的线程工厂可供多个并发线程安全使用。- 返回:
- 创建线程的线程工厂
-
Builder。