Java.lang.Thread 类

简介

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 − 这是分配给线程的默认优先级。


类构造函数

序号 构造函数 & 描述
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为run对象,以指定的name为name,属于group所引用的线程组。

7

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

这将分配一个新的 Thread 对象,使其以 target 作为其运行对象,以指定的名称作为其名称,属于由 group 引用的线程组,并具有指定的堆栈大小。

8

Thread(ThreadGroup group, String name)

这会分配一个新的 Thread 对象。


类方法

序号 方法 & 描述
1 static int activeCount()

该方法返回当前线程的线程组中的活动线程数。

2 void checkAccess()

这个方法判断当前运行的线程是否有权限修改这个线程。

3

protected Object clone()

如果此对象的类是 Cloneable,则此方法返回一个克隆。

4 static Thread currentThread()

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

5 static void dumpStack()

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

6 static int enumerate(Thread[] tarray)

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

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

此方法返回所有活动线程的堆栈跟踪映射。

8 ClassLoader getContextClassLoader()

此方法返回此线程的上下文 ClassLoader。

9 static Thread.UncaughtExceptionHandler getDefaultUncaughtExceptionHandler()

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

10 long getId()

此方法返回此线程的标识符。

11 String getName()

此方法返回此线程的名称。

12 int getPriority()

此方法返回此线程的优先级。

13 StackTraceElement[] getStackTrace()

此方法返回一个堆栈跟踪元素数组,表示该线程的堆栈转储。

14 Thread.State getState()

这个方法返回这个线程的状态。

15 ThreadGroup getThreadGroup()

该方法返回该线程所属的线程组。

16 Thread.UncaughtExceptionHandler getUncaughtExceptionHandler()

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

17 static boolean holdsLock(Object obj)

当且仅当当前线程持有指定对象的监视器锁时,此方法才返回 true。

18 void interrupt()

此方法中断此线程。

19 static boolean interrupted()

该方法测试当前线程是否被中断。

20 boolean isAlive()

此方法测试此线程是否处于活动状态。

21 boolean isDaemon()

这个方法测试这个线程是否是一个守护线程。

22 boolean isInterrupted()

此方法测试该线程是否已被中断。

23 void join()

等待此线程终止。

24 void join(long millis)

最多等待几毫秒让该线程终止。

25 void join(long millis, int nanos)

最多等待毫秒毫秒加纳秒纳秒让该线程终止。

26 void run()

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

27 void setContextClassLoader(ClassLoader cl)

此方法设置此线程的上下文 ClassLoader。

28 void setDaemon(boolean on)

此方法将此线程标记为守护线程或用户线程。

29 static void setDefaultUncaughtExceptionHandler (Thread.UncaughtExceptionHandler eh)

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

30 void setName(String name)

此方法将此线程的名称更改为等于参数名称。

31 void setPriority(int newPriority)

这个方法改变了这个线程的优先级。

32 void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)

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

33 static void sleep(long millis)

此方法会导致当前执行的线程休眠(暂时停止执行)指定的毫秒数,具体取决于系统计时器和调度程序的精度和准确性。

34 static void sleep(long millis, int nanos)

此方法使当前执行的线程休眠(停止执行)指定的毫秒数加上指定的纳秒数,具体取决于系统计时器和调度程序的精度和准确性。

35 void start()

该方法使该线程开始执行; Java虚拟机调用该线程的run方法。

36 String toString()

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

37 static void yield()

该方法使当前正在执行的线程对象暂时暂停并允许其他线程执行。


继承的方法

这个类继承了以下类的方法 −

  • java.lang.Object