農會 資訊管理類程式設計110 年第 48 題單選題
在Java語言中,下列何者能讓執行緒停止執行?
Asleep();正確答案
Bstop();正確答案
Cnotify();
Dwait();正確答案
A、B、D正確答案
sleep、stop與wait皆會使Java執行緒離開Running狀態而停止執行;notify則是喚醒執行緒。
為什麼答案是 A、B、D
使執行緒暫停執行指定時間,進入TIMED_WAITING狀態,屬於停止執行。
考點:執行緒暫停考點:執行緒終止考點:執行緒喚醒考點:執行緒等待
載入中…
完整詳解
Pro · 無限重點 sleep、stop與wait皆會使Java執行緒離開Running狀態而停止執行;notify則是喚醒執行緒。
秒記:sleep(睡覺)、stop(終止)、wait(等待)都會停;notify(叫醒)是恢復,故刪C。注意stop已棄用但仍算正確。
逐選項分析
A執行緒暫停✓ 正確
使執行緒暫停執行指定時間,進入TIMED_WAITING狀態,屬於停止執行。
B執行緒終止✓ 正確
強制終止執行緒。雖在現代Java中已棄用且不建議使用,但語意上確實能停止執行。
C執行緒喚醒✕
用於喚醒在此物件監視器上等待的單一執行緒,使其恢復執行,而非停止執行。
D執行緒等待✓ 正確
使當前執行緒進入WAITING狀態,直到被其他執行緒喚醒,屬於停止執行。
Java 執行緒狀態轉換方法對照
| 方法 | 作用 | 狀態變化 | 釋放鎖? |
|---|
| sleep() | 暫停指定時間 | Timed Waiting | 否 |
| wait() | 等待喚醒 | Waiting | 是 |
| notify() | 喚醒單一執行緒 | Runnable/Blocked | 否 |
| stop() | 強制終止 | Terminated | 否(已棄用) |
考生易因現代Java已棄用stop()而不敢選。但就「能否停止執行」的客觀事實而言,stop()確實具備強制終止功能,故依題意仍為正確選項。