在 Java 编程语言中,Thread
类是创建和管理线程的基础。线程是多任务处理的基本单元,允许程序并发执行多个任务。下面我们将总结 Thread
类的基本用法,包括线程的创建、中断、等待、休眠以及获取线程实例。
1.线程创建
在 Java 中,有五种方式可以创建线程:通过实现 Runnable
接口,继承 Thread
类,前面两种的匿名内部类,lamba表达式。下面是这五种方式的示例:
class MyThread extends Thread{
@Override
public void run(){
System.out.println("继承 Thread, 重写 run");
}
}
class MyRunnable implements Runnable{
@Override
public void run() {
System.out.println("实现 Runnable, 重写 run");
}
}
public class Text {
public static void main(String[] args) {
// 1.继承 Thread,重写 run
MyThread myThread = new MyThread();
myThread.start();
// 2.实现 Runnable,重写 run
Thread thread1 = new Thread(new MyRunnable());
thread1.start();
//3.继承 Thread, 重写 run, 使用匿名内部类
MyThread thread2 = new MyThread() {
@Override
public void run() {
System.out.println("继承 Thread,重写 run,使用匿名内部类");
}
};
thread2.start();
//4.实现 Runnable, 重写 run, 使用匿名内部类
Thread thread3 = new Thread(new MyRunnable(){
@Override
public void run(){
System.out.println("实现 Runnable, 重写 run, 使用匿名内部类\n");
}
});
//5.使用 lambda 表达式
Thread thread4 = new Thread(() -> System.out.println("使用 lambda 表达式"));
thread4.start();
}
}
2.线程中断
Thread
类提供了 interrupt
方法来中断一个线程。当线程被中断时,它会收到一个中断信号,然后可以选择如何响应这个信号。例如:
Thread thread = new Thread(() -> {
while (!Thread.currentThread().isInterrupted()) {
// 线程执行的代码
}
});
thread.start();
// 中断线程
thread.interrupt();
3.线程等待
Thread
类提供了 join
方法,允许一个线程等待另一个线程执行完成。这在协调多个线程的执行顺序时非常有用。例如:
Thread thread1 = new Thread(() -> {
// 线程执行的代码
});
Thread thread2 = new Thread(() -> {
// 等待 thread1 执行完成
try {
thread1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 线程执行的代码
});
thread1.start();
thread2.start();
4.线程休眠
Thread
类提供了 sleep
方法,允许线程休眠一段时间。这在需要让线程暂停执行一段时间的场景中非常有用。例如:
try {
Thread.sleep(1000); // 休眠 1 秒钟
} catch (InterruptedException e) {
e.printStackTrace();
}
5.获取线程实例
Thread
类提供了 currentThread
方法,可以获取当前正在执行的线程的实例。例如:
Thread currentThread = Thread.currentThread();