46 在Windows系統中,互斥鎖(mutex)的特性為何?
(A) 只能用於同一程序內
(B) 可以跨程序使用
(C) 不需要命名
(D) 不可以等待
統計: A(2), B(6), C(0), D(0), E(0) #3399893
詳解 (共 2 筆)
【第一步:找關鍵字】
互斥鎖(Mutex, Mutual Exclusion)
→ 用來「一次只允許一個人使用資源」
Windows 系統
→ 特別注意:Windows 的 mutex 支援「跨程序(process)」
關鍵觀念:
?「Mutex 不只是執行緒內,也可以跨程序」
【第二步:白話翻譯】
這題在問:
?「Windows 裡面的 mutex(鎖),是只能自己程式用,還是不同程式之間也能共用?」
【第三步:解題思路】
這題在考什麼觀念?
? Windows 同步機制(Mutex)是否支援「跨程序同步」
解題步驟
-
了解 Mutex 功能
→ 控制「一次只有一個人用資源」 -
Windows 特性
→ Mutex 可以「命名(Named Mutex)」 -
命名的意義
→ 不同程式可以用同一個名字找到同一把鎖
? 這就是「跨程序同步」
原理與規則
Mutex(互斥鎖)是什麼?
→ 一種同步工具,確保「同一時間只有一個執行單位進入臨界區」
Windows 特點:
-
支援 Named Mutex(具名互斥鎖)
-
可以在不同程序之間共享
生活比喻:
想像一把「公司共用鑰匙」:
-
沒名字 → 只有自己知道(同程序)
-
有名字 → 大家都知道在哪(跨程序)
? Windows mutex = 可以「取名字」的鎖
【第四步:選項分析】
-
(A) 只能用於同一程序內
❌ 錯
→ Windows mutex 可以跨程序
-
(B) 可以跨程序使用
✅ 正確
→ 因為有 Named Mutex 機制
-
(C) 不需要命名
❌ 錯
→ 雖然可以不命名,但「跨程序」一定要命名
→ 這不是 mutex 的特性重點
-
(D) 不可以等待
❌ 錯
→ Mutex 一定可以等待(WaitForSingleObject)
→ 這是基本功能
【觀念補充與延伸】
核心觀念定位
這題屬於:
? 作業系統 → 同步機制(Mutex / Semaphore)
? 常考「跨程序 vs 同程序」
法條或定義
Mutex(互斥鎖)
→ 一種同步機制,用來保護「臨界區(critical section)」
白話:
? 讓資源「一次只給一個人用」
觸類旁通(舉一反三)
對比概念:
-
Critical Section
→ 只能同一程序內 -
Mutex
→ 可以跨程序(Windows 特性)
? 超常考對比!
變化題型:
-
問 mutex vs semaphore 差異
-
問 Windows API(CreateMutex)
-
問 Named vs Unnamed
【記憶口訣】
?「Mutex 有名字,跨程序可用」
或:
?「有名共享,無名自用」
【常見陷阱】
學生最容易搞混的地方
-
把 mutex 當成只能 thread 用
-
跟 critical section 混在一起
心理盲點
直覺認為「鎖就是程式內用」
? 忽略 Windows 的 Named 機制
避坑指南
看到:
-
Windows
-
Mutex
? 優先想到:
「可以跨程序」