分配新的 thread 对象,以便将 target 作为其运行对象,将指定的 name 作为其名称,并作为 group 所引用的线程组的一员。
如果 group 为 null,并且有安全管理器,则该组由安全管理器的 getthreadgroup 方法确定。如果 group 为 null,并且没有安全管理器,或安全管理器的 getthreadgroup 方法返回 null,则该组与创建新线程的线程被设定为相同的 threadgroup。
如果有安全管理器,则其 checkaccess 方法通过 threadgroup 作为其参数被调用。
此外,当被重写 getcontextclassloader 或 setcontextclassloader 方法的子类构造方法直接或间接调用时,其 checkpermission 方法通过 runtimepermission("enablecontextclassloaderoverride") 权限调用。其结果可能是 securityexception。
如果 target 参数不是 null,则 target 的 run 方法在启动该线程时调用。如果 target 参数为 null,则该线程的 run 方法在该线程启动时调用。
新创建线程的优先级被设定为创建该线程的线程的优先级,即当前正在运行的线程的优先级。方法 setpriority 可用于将优先级更改为一个新值。
当且仅当创建新线程的线程当前被标记为守护线程时,新创建的线程才被标记为守护线程。方法 setdaemon 可用于改变线程是否为守护线程。
- 参数:
group - 线程组。target - 其 run 方法被调用的对象。name - 新线程的名称。
- 抛出:
securityexception - 如果当前线程无法在指定的线程组中创建线程,或者无法重写上下文类加载器方法。- 另请参见:
runnable.run(),
run(),
setdaemon(boolean),
setpriority(int),
threadgroup.checkaccess(),
securitymanager.checkaccess(java.lang.thread)