二进制信号量与互斥量

binary semaphore vs mutex

本文关键字:信号量 二进制      更新时间:2023-10-16

假设您有一个双锁:

Ex:
mutex.lock();
mutex.lock();
Ex:
binarysemaphore.wait();
binarysemaphore.wait();

这两者的行为会不同吗?或者它们是一样的。

我想你是指递归锁(不是双锁)

操作是否不同完全取决于平台和实现。

我认为在windows中默认的互斥锁是递归的(所以可重入锁工作),而信号量不是。

但是,在pthreads (POSIX)上,您可以按照自己喜欢的方式配置它。

在研究中,我们被告知Semaphoremax count = 1等于Mutex

这并不完全正确。

  1. Mutex不能被其他线程释放。
  2. Semaphore可用于这种情况。