互斥锁Mutex与信号量Semaphore的区别
或者直接使用语言提供的互斥锁 API(如 std::mutex、pthread_mutex_t、std::lock_guard 等)。
3. 计数信号量(Counting Semaphore)与 Mutex 的根本区别
3.1 计数器的意义
- Semaphore:内部维护一个 计数器(count),可以被 显式增加(Signal)或 减少(Unsignal)。计数器的取值范围是 0 到 max_count,因此可以控制 并发访问的上限。
- Mutex:只有 0 与 1 两种状态,表示 已锁定 与 未锁定。没有计数概念,也没有上限的概念。
原文代码(保持不变):