想象一下你有一把双锁:
Ex:
mutex.lock();
mutex.lock();
Ex:
binarysemaphore.wait();
binarysemaphore.wait();
这两者的行为会有所不同吗?或者他们会是一样的。
答案 0 :(得分:4)
我认为你的意思是递归锁定(不是双重锁定)
操作是否会有所不同完全取决于平台和实施。
我认为在Windows中,默认情况下,互斥锁是递归的(因此可重入锁定工作),而信号量不是。
但是,在pthreads(POSIX)上,你可以按照你喜欢的方式配置它。
答案 1 :(得分:0)
在研究期间,我们被告知Semaphore
max count = 1
等于Mutex
。
这不完全正确。
Mutex
。 Semaphore
可以在这种情况下使用。