原住民族考試四等考試-電子工程類科計算機概要106 年第 2 題單選題
關於執行緒(Thread)的敘述,下列何者錯誤?
A可由同一段程式碼產生多個執行緒
B與程序(Process)相較,執行緒間的執行可以非常快速地切換
C與程序相較,產生及結束的代價低
D與程序相較,對共享資料的保護性極佳正確答案
D正確答案
執行緒共享程序記憶體空間,對共享資料保護性反而差,需自行加鎖同步。
為什麼答案是 D
錯誤!同一 Process 內的執行緒「共享」記憶體與資料,保護性反而差,容易產生 race condition,需靠 mutex、semaphore 等機制同步。此為題目要選的錯誤敘述。
載入中…
完整詳解
Pro · 無限重點 執行緒共享程序記憶體空間,對共享資料保護性反而差,需自行加鎖同步。
記住:Thread = 輕量、快速、共享記憶體;共享 = 保護差,要自己同步。
逐選項分析
A✕
同一段程式碼確實可以產生多個執行緒同時執行(例如多執行緒伺服器),此敘述正確。
B✕
執行緒切換(context switch)只需切換暫存器與堆疊,不需切換記憶體空間,比 Process 快很多,正確。
C✕
建立與終止執行緒不需配置獨立記憶體空間,代價遠低於 Process,正確。
D✓ 正確
錯誤!同一 Process 內的執行緒「共享」記憶體與資料,保護性反而差,容易產生 race condition,需靠 mutex、semaphore 等機制同步。此為題目要選的錯誤敘述。
Process vs Thread 比較
| 比較項目 | Process 程序 | Thread 執行緒 | 關鍵差異 |
|---|
| 記憶體空間 | 各自獨立 | 共享同一 Process | Thread 共享 |
| 建立/結束成本 | 高 | 低 | Thread 輕量 |
| 切換速度 | 慢 | 快 | Thread 快 |
| 資料保護性 | 佳(隔離) | 差(需同步) | Thread 易衝突 |
| 通訊方式 | IPC 複雜 | 直接讀寫變數 | Thread 方便但危險 |
D 選項把 Thread 的「共享資料」偷換成「保護性極佳」,正好相反!共享記憶體正是 Thread 的最大優勢(通訊快)也是最大風險(競爭條件),需要程式設計師自行用 lock 機制保護。考生常被「執行緒比較好」的直覺誤導。