# java.lang.Thread类 - java.lang **java.lang.Thread **类是执行程序中的线程。Java虚拟机允许应用程序具有执行同时运行多个线程。以下是关于主题的要点: * 每个线程都有一个优先级。线程具有更高的优先级优先执行线程优先级较低 * 每个线程都可以或不可以也被标记为一个守护程序。 * 有两种方法来创建新的执行线程。一种声明一个类Thread的子类 * 另一种方式来创建一个线程是声明实现Runnable接口的类 ## 类声明 以下是**java.lang.Thread**类的声明: ``` public class Thread extends Object implements Runnable ``` ## 字段域 以下是java.lang.Thread类的字段: * static int MAX_PRIORITY -- 这是一个线程可以有最低的优先级。 * static int NORM_PRIORITY -- 这是分配给一个线程的缺省优先级。 ## 类构造函数 | S.N. | 构造函数 & 描述 | | --- | --- | | 1 | **Thread() ** 这种分配新的Thread对象。 | | 2 | **Thread(Runnable target) ** 这种分配新的Thread对象。 | | 3 | **Thread(Runnable target, String name) ** 这种分配新的Thread对象。 | | 4 | **Thread(String name) ** 这个构造分配新的Thread对象。 | | 5 | **Thread(ThreadGroup group, Runnable target) ** 这种分配新的Thread对象。 | | 6 | **Thread(ThreadGroup group, Runnable target, String name) ** 这种分配新的Thread对象,以便将target作为其运行对象,将指定的name作为其名称,而属于由组所指的线程组。 | | 7 | **Thread(ThreadGroup group, Runnable target, String name, long stackSize) ** 这种分配新的Thread对象,以便将target作为其运行对象,将指定的name作为其名称,所属组所提到的线程组,并具有指定的堆栈大小。 | | 8 | **Thread(ThreadGroup group, String name) ** 这种分配新的Thread对象。 | ## 类方法 | S.N. | 方法 & 描述 | | --- | --- | | 1 | [static int activeCount() ](http://www.yiibai.com/java/lang/thread_activecount.html) 此方法返回活动线程的当前线程的线程组中的数量。 | | 2 | [void checkAccess() ](http://www.yiibai.com/java/lang/thread_checkaccess.html) 此方法确定当前运行的线程是否有权修改该线程。 | | 3 | [protected Object clone() ](http://www.yiibai.com/java/lang/thread_clone.html) 此方法返回一个克隆,如果此对象的类是可复制的。 | | 4 | [static Thread currentThread() ](http://www.yiibai.com/java/lang/thread_currentthread.html) 此方法返回一个引用到当前正在执行的线程对象。 | | 5 | [static void dumpStack() ](http://www.yiibai.com/java/lang/thread_dumpstack.html) 此方法打印当前线程的堆栈跟踪到标准错误流。 | | 6 | [static int enumerate(Thread[] tarray) ](http://www.yiibai.com/java/lang/thread_enumerate.html) 此方法会复制到指定的数组当前线程的线程组及其子组中的每一个活动线程。 | | 7 | [static Map<Thread,StackTraceElement[]> getAllStackTraces() ](http://www.yiibai.com/java/lang/thread_getallstacktraces.html) 此方法返回的堆栈跟踪的所有活动线程的映射。 | | 8 | [ClassLoader getContextClassLoader() ](http://www.yiibai.com/java/lang/thread_getcontextclassloader.html) 此方法返回该线程的上下文类加载器。 | | 9 | [static Thread.UncaughtExceptionHandler getDefaultUncaughtExceptionHandler() ](http://www.yiibai.com/java/lang/thread_getdefaultuncaughtexceptionhandler.html) 此方法返回调用默认的处理程序,当一个线程突然终止由于未捕获到异常。 | | 10 | [long getId() ](http://www.yiibai.com/java/lang/thread_getid.html) 此方法返回该线程的标识符。 | | 11 | [String getName() ](http://www.yiibai.com/java/lang/thread_getname.html) 此方法返回该线程的名称。 | | 12 | [int getPriority() ](http://www.yiibai.com/java/lang/thread_getpriority.html) 此方法返回该线程的优先级。 | | 13 | [StackTraceElement[] getStackTrace() ](http://www.yiibai.com/java/lang/thread_getstacktrace.html) 此方法返回一个表示该线程的堆栈转储堆栈跟踪元素的数组。 | | 14 | [Thread.State getState() ](http://www.yiibai.com/java/lang/thread_getstate.html) 此方法返回该线程的状态。 | | 15 | [ThreadGroup getThreadGroup() ](http://www.yiibai.com/java/lang/thread_getthreadgroup.html) 此方法返回此线程所属的线程组。 | | 16 | [Thread.UncaughtExceptionHandler getUncaughtExceptionHandler() ](http://www.yiibai.com/java/lang/thread_getuncaughtexceptionhandler.html) 此方法返回调用的处理时该线程突然终止,由于未捕获到异常。 | | 17 | [static boolean holdsLock(Object obj) ](http://www.yiibai.com/java/lang/thread_holdslock.html) 当且仅当当前线程在指定的对象上保持监视器锁此方法返回true。 | | 18 | [void interrupt() ](http://www.yiibai.com/java/lang/thread_interrupt.html) 此方法会中断该线程。 | | 19 | [static boolean interrupted() ](http://www.yiibai.com/java/lang/thread_interrupted.html) 此方法测试是否当前线程已被中断。 | | 20 | [boolean isAlive() ](http://www.yiibai.com/java/lang/thread_isalive.html) 此方法测试该线程是否活着。 | | 21 | [boolean isDaemon() ](http://www.yiibai.com/java/lang/thread_isdaemon.html) 此方法测试该线程是否为守护线程。 | | 22 | [boolean isInterrupted() ](http://www.yiibai.com/java/lang/thread_isinterrupted.html) 此方法测试是否该线程已被中断。 | | 23 | [void join() ](http://www.yiibai.com/java/lang/thread_join.html) 等待该线程终止。 | | 24 | [void join(long millis) ](http://www.yiibai.com/java/lang/thread_join_millis.html) 等待在最长为millis毫秒终止这个线程。 | | 25 | [void join(long millis, int nanos) ](http://www.yiibai.com/java/lang/thread_join_millis_nanos.html) 等待在最长为millis毫秒+nonos毫秒该线程死亡。 | | 26 | [void run() ](http://www.yiibai.com/java/lang/thread_run.html) 如果该线程是使用独立的Runnable运行对象构造的,则该Runnable对象的run方法被调用;否则,此方法不执行任何操作并返回 | | 27 | [void setContextClassLoader(ClassLoader cl) ](http://www.yiibai.com/java/lang/thread_setcontextclassloader.html) 此方法设置该线程的上下文类加载器。 | | 28 | [void setDaemon(boolean on) ](http://www.yiibai.com/java/lang/thread_setdaemon.html) 此方法将该线程标记为守护线程或用户线程。 | | 29 | [static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh) ](http://www.yiibai.com/java/lang/thread_setdefaultuncaughtexceptionhandler.html) 此方法设置的默认处理程序时调用线程突然终止,由于未捕获到异常,并没有其他的处理程序被定义为该线程。 | | 30 | [void setName(String name) ](http://www.yiibai.com/java/lang/thread_setname.html) 此方法更改为等于参数名该线程的名称。 | | 31 | [void setPriority(int newPriority) ](http://www.yiibai.com/java/lang/thread_setpriority.html) This method changes the priority of this thread. | | 32 | [void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh) ](http://www.yiibai.com/java/lang/thread_setuncaughtexceptionhandler.html) 此方法设置时调用的处理这个线程突然终止由于未捕获到异常。 | | 33 | [static void sleep(long millis) ](http://www.yiibai.com/java/lang/thread_sleep_millis.html) 此方法使当前执行线程休眠(暂停执行)指定的毫秒数,受制于精度和系统计时器和调度程序精度。 | | 34 | [static void sleep(long millis, int nanos) ](http://www.yiibai.com/java/lang/thread_sleep_millis_nanos.html) 此方法使当前执行的线程休眠(暂停执行)为指定的毫秒数加纳秒指定数量,受制于精度和系统计时器和调度程序精度。 | | 35 | [void start() ](http://www.yiibai.com/java/lang/thread_start.html) 此方法使该线程开始执行; Java虚拟机调用该线程的run方法。 | | 36 | [String toString() ](http://www.yiibai.com/java/lang/thread_tostring.html) 此方法返回该线程的字符串表示形式,包括线程名称,优先级和线程组。 | | 37 | [static void yield() ](http://www.yiibai.com/java/lang/thread_yield.html) 此方法使当前执行的线程对象来暂停并允许其他线程执行。 | ## 方法继承 这个类从以下类继承的方法: * java.lang.Object