返回章节

🔄 第3章测试:线程生命周期

测试你对Java线程生命周期和状态转换的理解程度

1
Java线程有几种状态?
解析:

Java线程有6种状态:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED。这些状态由Thread.State枚举定义。

2
线程调用start()方法后会进入哪种状态?
解析:

线程调用start()方法后会从NEW状态转换到RUNNABLE状态,表示线程已经准备好运行,等待CPU调度。

3
线程调用Thread.sleep()方法会进入哪种状态?
解析:

Thread.sleep()方法会让线程进入TIMED_WAITING状态,因为它指定了等待的时间。超时后线程会自动返回RUNNABLE状态。

4
线程尝试获取synchronized锁失败时会进入哪种状态?
解析:

当线程尝试获取synchronized锁失败时,会进入BLOCKED状态,直到获取到锁后才会返回RUNNABLE状态。

5
关于线程的interrupt机制,以下说法正确的是?
解析:

interrupt()方法只是设置线程的中断标志,不会立即停止线程。线程需要检查中断状态并自行决定如何响应中断。

6
以下哪个方法可以用来检查线程的中断状态?
解析:

以上方法都可以检查中断状态,但有区别:isInterrupted()不清除中断标志,interrupted()会清除中断标志。

7
线程调用Object.wait()方法会进入哪种状态?
解析:

Object.wait()方法会让线程进入WAITING状态,直到其他线程调用notify()或notifyAll()方法唤醒它。

8
关于RUNNABLE状态,以下说法正确的是?
解析:

RUNNABLE状态包含了操作系统层面的READY和RUNNING状态,线程可能正在运行,也可能在等待CPU时间片。

0/8
加载中...
重新测试 返回章节