【问题标题】:Difference between Mutex and Semaphore=1? [duplicate]互斥量和信号量 = 1 之间的区别? [复制]
【发布时间】:2017-11-19 18:44:19
【问题描述】:

以下两个变量有什么区别:

Mutex m;
Semaphore s = 1;

我认为它们是相同的,但在我正在观看的有关阅读器/编写器问题的公式的视频中,它说使用5 信号量,每个信号量都从1 的值开始。我觉得这很有趣,因为我认为如果您有一个值为 1 的信号量,那么您只需使用互斥锁即可。

【问题讨论】:

  • @DougCurrie 谢谢。我永远不会知道搜索 Binary Semaphore。这包含了我需要的所有信息。

标签: multithreading language-agnostic mutex semaphore


【解决方案1】:

将 Mutex 视为信号量定义的子集。

这里有一个关于 Stack Overflow 的好答案:Difference between binary semaphore and mutex

Mutex 只能由获得它的线程释放,而你 可以从任何其他线程(或进程)发出信号量,所以信号量 更适合一些同步问题,比如 生产者-消费者。

【讨论】:

    猜你喜欢
    • 2010-09-08
    • 2020-04-05
    • 2014-06-24
    • 2015-01-23
    • 2015-05-24
    • 2013-07-01
    • 2011-01-20
    • 2011-04-20
    相关资源
    最近更新 更多