21.9.24 Thread类

目录

一、Thread类

Field Summary

构造方法摘要

方法摘要


一、Thread类

Nested Classes  
Modifier and TypeClass and Description
static class Thread.State

线程状态。

static interface Thread.UncaughtExceptionHandler

当Thread由于未捕获的异常而突然终止时,处理程序的 接口被调用。

Field Summary

Fields  
Modifier and TypeField and Description
static intMAX_PRIORITY

线程可以拥有的最大优先级。

static intMIN_PRIORITY

线程可以拥有的最小优先级。

static intNORM_PRIORITY

分配给线程的默认优先级。

构造方法摘要

构造方法  
Constructor and Description
Thread()

分配一个新的 Thread对象。

Thread(Runnable target)

分配一个新的 Thread对象。

Thread(Runnable target, String name)

分配一个新的 Thread对象。

Thread(String name)

分配一个新的 Thread对象。

Thread(ThreadGroup group, Runnable target)

分配一个新的 Thread对象。

Thread(ThreadGroup group, Runnable target, String name)

分配一个新的 Thread对象,使其具有 target作为其运行对象,具有指定的 name作为其名称,属于 group引用的线程组。

Thread(ThreadGroup group, Runnable target, String name, long stackSize)

分配一个新的 Thread对象,以便它具有 target作为其运行对象,将指定的 name正如其名,以及属于该线程组由称作 group ,并具有指定的 堆栈大小

Thread(ThreadGroup group, String name)

分配一个新的 Thread对象。

方法摘要

所有方法  静态方法  接口方法  具体的方法  弃用的方法 
Modifier and TypeMethod and Description
static intactiveCount()

返回当前线程的thread group及其子组中活动线程数的估计。

voidcheckAccess()

确定当前正在运行的线程是否有权限修改此线程。

protected Objectclone()

将CloneNotSupportedException作为线程抛出无法有意义地克隆。

intcountStackFrames()已弃用

此呼叫的定义取决于suspend() ,它已被弃用。 此外,此呼叫的结果从未明确。

static ThreadcurrentThread()

返回对当前正在执行的线程对象的引用。

voiddestroy()已弃用

这种方法最初是为了销毁这个线程而没有任何清理。 它所持有的任何监视器都将保持锁定。 但是,该方法从未实现。 如果要实施,那么它将是suspend()的方式是僵死的 。 如果目标线程在销毁时保护关键系统资源的锁,则无法再次访问该资源。 如果另一个线程曾尝试锁定此资源,将导致死锁。 这种僵局通常表现为“冻结”过程。 有关详细信息,请参阅Why are Thread.stop, Thread.suspend and Thread.resume Deprecated? 。

static voiddumpStack()

将当前线程的堆栈跟踪打印到标准错误流。

static intenumerate(Thread[] tarray)

将当前线程的线程组及其子组中的每个活动线程复制到指定的数组中。

static Map<Thread,StackTraceElement[]>getAllStackTraces()

返回所有活动线程的堆栈跟踪图。

ClassLoadergetContextClassLoader()

返回此Thread的上下文ClassLoader。

static Thread.UncaughtExceptionHandlergetDefaultUncaughtExceptionHandler()

返回当线程由于未捕获异常突然终止而调用的默认处理程序。

longgetId()

返回此线程的标识符。

StringgetName()

返回此线程的名称。

intgetPriority()

返回此线程的优先级。

StackTraceElement[]getStackTrace()

返回表示此线程的堆栈转储的堆栈跟踪元素数组。

Thread.StategetState()

返回此线程的状态。

ThreadGroupgetThreadGroup()

返回此线程所属的线程组。

Thread.UncaughtExceptionHandlergetUncaughtExceptionHandler()

返回由于未捕获的异常,此线程突然终止时调用的处理程序。

static booleanholdsLock(Object obj)

返回 true当且仅当当前线程在指定的对象上保持监视器锁。

voidinterrupt()

中断这个线程。

static booleaninterrupted()

测试当前线程是否中断。

booleanisAlive()

测试这个线程是否活着。

booleanisDaemon()

测试这个线程是否是守护线程。

booleanisInterrupted()

测试这个线程是否被中断。

voidjoin()

等待这个线程死亡。

voidjoin(long millis)

等待这个线程死亡最多 millis毫秒。

voidjoin(long millis, int nanos)

等待最多 millis毫秒加上 nanos纳秒这个线程死亡。

voidresume()已弃用

该方法仅用于与suspend()一起使用,因为它是死锁倾向的,因此已被弃用。 有关详细信息,请参阅Why are Thread.stop, Thread.suspend and Thread.resume Deprecated? 。

voidrun()

如果这个线程使用单独的Runnable运行对象构造,则调用该Runnable对象的run方法; 否则,此方法不执行任何操作并返回。

voidsetContextClassLoader(ClassLoader cl)

设置此线程的上下文ClassLoader。

voidsetDaemon(boolean on)

将此线程标记为 daemon线程或用户线程。

static voidsetDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)

设置当线程由于未捕获的异常突然终止而调用的默认处理程序,并且没有为该线程定义其他处理程序。

voidsetName(String name)

将此线程的名称更改为等于参数 name

voidsetPriority(int newPriority)

更改此线程的优先级。

voidsetUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)

设置当该线程由于未捕获的异常而突然终止时调用的处理程序。

static voidsleep(long millis)

使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行),具体取决于系统定时器和调度程序的精度和准确性。

static voidsleep(long millis, int nanos)

导致正在执行的线程以指定的毫秒数加上指定的纳秒数来暂停(临时停止执行),这取决于系统定时器和调度器的精度和准确性。

voidstart()

导致此线程开始执行; Java虚拟机调用此线程的run方法。

voidstop()已弃用

这种方法本质上是不安全的。 使用Thread.stop停止线程可以解锁所有已锁定的监视器(由于未ThreadDeath ThreadDeath异常在堆栈中ThreadDeath的自然结果)。 如果先前受这些监视器保护的任何对象处于不一致的状态,则损坏的对象将变得对其他线程可见,可能导致任意行为。 stop许多用途应该被替换为只是修改一些变量以指示目标线程应该停止运行的代码。 目标线程应该定期检查此变量,如果变量表示要停止运行,则以有序方式从其运行方法返回。 如果目标线程长时间等待(例如,在interrupt变量上),则应该使用interrupt方法来中断等待。 有关详细信息,请参阅Why are Thread.stop, Thread.suspend and Thread.resume Deprecated? 。

voidstop(Throwable obj)已弃用

该方法最初设计为强制线程停止并抛出一个给定的Throwable作为例外。 它本质上是不安全的(有关详细信息,请参阅stop() ),此外还可用于生成目标线程未准备处理的异常。 有关详细信息,请参阅Why are Thread.stop, Thread.suspend and Thread.resume Deprecated? 。

voidsuspend()已弃用

这种方法已被弃用,因为它本身就是死锁的。 如果目标线程在挂起时保护关键系统资源的监视器上的锁定,则在目标线程恢复之前,线程不能访问该资源。 如果要恢复目标线程的线程在调用resume之前尝试锁定此监视器, resume导致死锁。 这种僵局通常表现为“冻结”过程。 有关详细信息,请参阅Why are Thread.stop, Thread.suspend and Thread.resume Deprecated? 。

StringtoString()

返回此线程的字符串表示,包括线程的名称,优先级和线程组。

static voidyield()

对调度程序的一个暗示,即当前线程愿意产生当前使用的处理器。

21.9.24 Thread类

目录

一、Thread类

Field Summary

构造方法摘要

方法摘要


一、Thread类

Nested Classes  
Modifier and TypeClass and Description
static class Thread.State

线程状态。

static interface Thread.UncaughtExceptionHandler

当Thread由于未捕获的异常而突然终止时,处理程序的 接口被调用。

Field Summary

Fields  
Modifier and TypeField and Description
static intMAX_PRIORITY

线程可以拥有的最大优先级。

static intMIN_PRIORITY

线程可以拥有的最小优先级。

static intNORM_PRIORITY

分配给线程的默认优先级。

构造方法摘要

构造方法  
Constructor and Description
Thread()

分配一个新的 Thread对象。

Thread(Runnable target)

分配一个新的 Thread对象。

Thread(Runnable target, String name)

分配一个新的 Thread对象。

Thread(String name)

分配一个新的 Thread对象。

Thread(ThreadGroup group, Runnable target)

分配一个新的 Thread对象。

Thread(ThreadGroup group, Runnable target, String name)

分配一个新的 Thread对象,使其具有 target作为其运行对象,具有指定的 name作为其名称,属于 group引用的线程组。

Thread(ThreadGroup group, Runnable target, String name, long stackSize)

分配一个新的 Thread对象,以便它具有 target作为其运行对象,将指定的 name正如其名,以及属于该线程组由称作 group ,并具有指定的 堆栈大小

Thread(ThreadGroup group, String name)

分配一个新的 Thread对象。

方法摘要

所有方法  静态方法  接口方法  具体的方法  弃用的方法 
Modifier and TypeMethod and Description
static intactiveCount()

返回当前线程的thread group及其子组中活动线程数的估计。

voidcheckAccess()

确定当前正在运行的线程是否有权限修改此线程。

protected Objectclone()

将CloneNotSupportedException作为线程抛出无法有意义地克隆。

intcountStackFrames()已弃用

此呼叫的定义取决于suspend() ,它已被弃用。 此外,此呼叫的结果从未明确。

static ThreadcurrentThread()

返回对当前正在执行的线程对象的引用。

voiddestroy()已弃用

这种方法最初是为了销毁这个线程而没有任何清理。 它所持有的任何监视器都将保持锁定。 但是,该方法从未实现。 如果要实施,那么它将是suspend()的方式是僵死的 。 如果目标线程在销毁时保护关键系统资源的锁,则无法再次访问该资源。 如果另一个线程曾尝试锁定此资源,将导致死锁。 这种僵局通常表现为“冻结”过程。 有关详细信息,请参阅Why are Thread.stop, Thread.suspend and Thread.resume Deprecated? 。

static voiddumpStack()

将当前线程的堆栈跟踪打印到标准错误流。

static intenumerate(Thread[] tarray)

将当前线程的线程组及其子组中的每个活动线程复制到指定的数组中。

static Map<Thread,StackTraceElement[]>getAllStackTraces()

返回所有活动线程的堆栈跟踪图。

ClassLoadergetContextClassLoader()

返回此Thread的上下文ClassLoader。

static Thread.UncaughtExceptionHandlergetDefaultUncaughtExceptionHandler()

返回当线程由于未捕获异常突然终止而调用的默认处理程序。

longgetId()

返回此线程的标识符。

StringgetName()

返回此线程的名称。

intgetPriority()

返回此线程的优先级。

StackTraceElement[]getStackTrace()

返回表示此线程的堆栈转储的堆栈跟踪元素数组。

Thread.StategetState()

返回此线程的状态。

ThreadGroupgetThreadGroup()

返回此线程所属的线程组。

Thread.UncaughtExceptionHandlergetUncaughtExceptionHandler()

返回由于未捕获的异常,此线程突然终止时调用的处理程序。

static booleanholdsLock(Object obj)

返回 true当且仅当当前线程在指定的对象上保持监视器锁。

voidinterrupt()

中断这个线程。

static booleaninterrupted()

测试当前线程是否中断。

booleanisAlive()

测试这个线程是否活着。

booleanisDaemon()

测试这个线程是否是守护线程。

booleanisInterrupted()

测试这个线程是否被中断。

voidjoin()

等待这个线程死亡。

voidjoin(long millis)

等待这个线程死亡最多 millis毫秒。

voidjoin(long millis, int nanos)

等待最多 millis毫秒加上 nanos纳秒这个线程死亡。

voidresume()已弃用

该方法仅用于与suspend()一起使用,因为它是死锁倾向的,因此已被弃用。 有关详细信息,请参阅Why are Thread.stop, Thread.suspend and Thread.resume Deprecated? 。

voidrun()

如果这个线程使用单独的Runnable运行对象构造,则调用该Runnable对象的run方法; 否则,此方法不执行任何操作并返回。

voidsetContextClassLoader(ClassLoader cl)

设置此线程的上下文ClassLoader。

voidsetDaemon(boolean on)

将此线程标记为 daemon线程或用户线程。

static voidsetDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)

设置当线程由于未捕获的异常突然终止而调用的默认处理程序,并且没有为该线程定义其他处理程序。

voidsetName(String name)

将此线程的名称更改为等于参数 name

voidsetPriority(int newPriority)

更改此线程的优先级。

voidsetUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)

设置当该线程由于未捕获的异常而突然终止时调用的处理程序。

static voidsleep(long millis)

使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行),具体取决于系统定时器和调度程序的精度和准确性。

static voidsleep(long millis, int nanos)

导致正在执行的线程以指定的毫秒数加上指定的纳秒数来暂停(临时停止执行),这取决于系统定时器和调度器的精度和准确性。

voidstart()

导致此线程开始执行; Java虚拟机调用此线程的run方法。

voidstop()已弃用

这种方法本质上是不安全的。 使用Thread.stop停止线程可以解锁所有已锁定的监视器(由于未ThreadDeath ThreadDeath异常在堆栈中ThreadDeath的自然结果)。 如果先前受这些监视器保护的任何对象处于不一致的状态,则损坏的对象将变得对其他线程可见,可能导致任意行为。 stop许多用途应该被替换为只是修改一些变量以指示目标线程应该停止运行的代码。 目标线程应该定期检查此变量,如果变量表示要停止运行,则以有序方式从其运行方法返回。 如果目标线程长时间等待(例如,在interrupt变量上),则应该使用interrupt方法来中断等待。 有关详细信息,请参阅Why are Thread.stop, Thread.suspend and Thread.resume Deprecated? 。

voidstop(Throwable obj)已弃用

该方法最初设计为强制线程停止并抛出一个给定的Throwable作为例外。 它本质上是不安全的(有关详细信息,请参阅stop() ),此外还可用于生成目标线程未准备处理的异常。 有关详细信息,请参阅Why are Thread.stop, Thread.suspend and Thread.resume Deprecated? 。

voidsuspend()已弃用

这种方法已被弃用,因为它本身就是死锁的。 如果目标线程在挂起时保护关键系统资源的监视器上的锁定,则在目标线程恢复之前,线程不能访问该资源。 如果要恢复目标线程的线程在调用resume之前尝试锁定此监视器, resume导致死锁。 这种僵局通常表现为“冻结”过程。 有关详细信息,请参阅Why are Thread.stop, Thread.suspend and Thread.resume Deprecated? 。

StringtoString()

返回此线程的字符串表示,包括线程的名称,优先级和线程组。

static voidyield()

对调度程序的一个暗示,即当前线程愿意产生当前使用的处理器。