分配新的 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)