1. Start & Run 方法
- start 方法:
- 用于启动线程,调用
run()
方法。线程实际运行时是在调用start()
方法之后。 - 只能被调用一次,多次调用会抛出
IllegalThreadStateException
异常。
- 用于启动线程,调用
- run 方法:
- 线程对象自动会调用的实例方法。
2. Sleep & Yield 方法
- Sleep 方法:
- 让当前线程进入
Timed Waiting
状态。 sleep()
方法可以被interrupt()
方法打断并抛出InterruptedException
异常。- 用法:
Thread.sleep(1000); // 睡眠 1 秒
- 让当前线程进入
- Yield 方法:
- 让当前线程让出 CPU 使用权,但是不会进入
Blocked
状态。 - 实际效果因平台不同,可能不起作用。
- 让当前线程让出 CPU 使用权,但是不会进入
3. Join 方法
- join 方法:
- 使当前线程等待另一个线程执行完成后再继续执行。
- 用法:
t1.join(); // 等待 t1 线程执行完毕
4. Interrupt 方法
- interrupt 方法:
- 打断正在运行的线程。
- 常用于中断正在执行的线程。
t1.interrupt();
// 打断 t1 线程
- isInterrupted 方法:
- 判断线程是否被中断。
- 用法:
t1.isInterrupted(); // 判断 t1 线程是否被中断
- interrupted 方法:
- 判断当前线程是否被中断,并清除中断状态。
- 用法:
Thread.interrupted(); // 判断当前线程是否被中断并清除中断状态
补充说明
sleep()
方法可以通过TimeUnit
类来方便地设置睡眠时间。yield()
方法不一定总是有效,其效果可能因平台和 JVM 实现不同而有所差异。join()
方法常用于等待某个线程执行完成,以实现线程间的同步。