1.Thread类及常见方法
Thread 类是 JVM 用来管理线程的一个类,换句话说,每个线程都有一个唯一的 Thread 对象与之关联。
Thread 类的对象就是用来描述一个线程执行流的,JVM 会将这些 Thread 对象组织起来,用于线程调度,线程管理。
1.1 Thread的常见构造方法
方法 | 说明 |
---|---|
Thread() | 创建线程对象 |
Thread(Runnable target) | 使用 Runnable 对象创建线程对象 |
Thread(String name) | 创建线程对象,并命名 |
Thread(Runnable target, String name) | 使用 Runnable 对象创建线程对象,并命名 |
Thread(ThreadGroup group,Runnable target) | 线程可以被用来分组管理,分好的组即使线程组 |
示例:
Thread t1 = new Thread();
Thread t2 = new Thread(new MyRunnable());
Thread t3 = new Thread(“这是我的名字”);
Thread t4 = new Thread(new MyRunnable(), “这是我的名字”)
2.2Thread的几个常见属性
属性 | 获取方法 | 方法详解 |
---|---|---|
ID | getId() | 获取线程的ID |
名称 | getName() | 获取线程的名称 |
状态 | getState() | 查看线程的状态 |
优先级 | getPriority() | |
是否后台线程 | isDaemon() | 查看线程是否是后台线程 |
是否存活 | isAlive() | 查看线程是否活着 |
是否被中断 | isInterrupted() | 查看线程是否被中止 |
- ID 是线程的唯一标识,不同线程不会重复
- 名称是各种调试工具用到
- 状态表示线程当前所处的一个情况,下面我们会进一步说明
- 优先级高的线程理论上来说更容易被调度到
- 关于后台线程,需要记住一点:JVM会在一个进程的所有非后台线程结束后,才会结束运行。
- 是否存活,即简单的理解,为 run 方法是否运行结束了
代码示例:
public class ThreadFields {
public static void main(String[] args) {
// Thread.currentThread()
// 获取当前线程的 Thread 对象
Thread currentThread = Thread.currentThread();
System.out.println(currentThread.getId());
System.out.println(currentThread.getName());
System.out.println(currentThread.getPriority());
System.out.println(currentThread.getState());
System.out.println(currentThread.isDaemon());
System.out.println(currentThread.isAlive());
System.out.println(currentThread.isInterrupted());
}
}