由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 连续release mutex/semphore 2次有什么问题吗?
相关主题
question about the read/write lockermutex和semaphore的差别到底是什么?
pthread mutex能不能用与thread和process之间谁能推荐一个read-writer lock的C++实现? (转载)
condional variable thread sync 问题 (转载)精华区翻出来的MS老题,thread safe
how many ways in C++ to release a mutex?多线程 编程,process 和 thread 的一些问题。
is it possible to generate random tests for semphore/mutex/event APIs ... ?Monitor和semaphore, mutex是什么关系?
Restaurant Reservation System...问个semaphore 和 mutex的问题
about critical section编程题又一道
how to answer this question, thanks请问这些问题应该在那种书上找到答案?
相关话题的讨论汇总
话题: mutex话题: semaphore话题: semphore话题: release话题: binary
进入Programming版参与讨论
1 (共1页)
w*s
发帖数: 7227
1
据说mutex, semphore的情况是不同的,你们怎么看?
w*s
发帖数: 7227
2
尼玛,每次都这样,不上美女图就没人回,好了好了,来了,你们没治了。

【在 w*s 的大作中提到】
: 据说mutex, semphore的情况是不同的,你们怎么看?
g*********e
发帖数: 14401
3
建议你找本书好好看看啥叫mutex semaphore
W***o
发帖数: 6519
4
我是这么理解的,用一个通俗的“排队上厕所大便"的例子来说一下我的体会:
1. Mutex:
一queue人排队等着去厕所大便,但是只有一个厕所,所以只能FIFO,一个人拿到钥匙
以后,如厕,锁门;这个时候后面所有的人都不能进去,必须要等前面的那个人大便完
开门以后,拿到钥匙才能进去如厕,锁门....
2. Semaphore:
还是一queue人排队等着去厕所大便,这个时候有3个厕所(不分男女假设),都需要钥
匙进去;钥匙都一样,这个需要有人告诉大家有几把钥匙available, 如果是0,那大家
耐心等。如果有1个钥匙,前面的一个人进去大便,如果有3把钥匙,一次放前面三个人
去厕所。
我只写过mutex, 但是看过semaphore 的实现代码,觉得差不多就是这意思,
连续两次RELEASE, mutex 可能就交换好两次钥匙了
semaphore 肯定就是放两个人进去大便了
请大牛赐教

【在 w*s 的大作中提到】
: 据说mutex, semphore的情况是不同的,你们怎么看?
w*s
发帖数: 7227
5
尼玛老子完全记错了semphore

【在 W***o 的大作中提到】
: 我是这么理解的,用一个通俗的“排队上厕所大便"的例子来说一下我的体会:
: 1. Mutex:
: 一queue人排队等着去厕所大便,但是只有一个厕所,所以只能FIFO,一个人拿到钥匙
: 以后,如厕,锁门;这个时候后面所有的人都不能进去,必须要等前面的那个人大便完
: 开门以后,拿到钥匙才能进去如厕,锁门....
: 2. Semaphore:
: 还是一queue人排队等着去厕所大便,这个时候有3个厕所(不分男女假设),都需要钥
: 匙进去;钥匙都一样,这个需要有人告诉大家有几把钥匙available, 如果是0,那大家
: 耐心等。如果有1个钥匙,前面的一个人进去大便,如果有3把钥匙,一次放前面三个人
: 去厕所。

g*****n
发帖数: 420
6
跟库有关,有些库会死锁,有些不会.我记不太清楚了,好像boost release ,acquire次数
不一样会死锁.
x****o
发帖数: 21566
7
1) semaphore has two types: counting semaphore and binary semaphore
2) mutex is similar to binary semaphore but with one biggest difference
"the principle of ownership"
Mutex requires ownership, semaphore does not.
That's it.
s********k
发帖数: 6180
8
最重要有一个区别,mutex只能锁住的thread释放,semaphore没有这个限制,thread
1signal,thread 2 wait完全可以

【在 W***o 的大作中提到】
: 我是这么理解的,用一个通俗的“排队上厕所大便"的例子来说一下我的体会:
: 1. Mutex:
: 一queue人排队等着去厕所大便,但是只有一个厕所,所以只能FIFO,一个人拿到钥匙
: 以后,如厕,锁门;这个时候后面所有的人都不能进去,必须要等前面的那个人大便完
: 开门以后,拿到钥匙才能进去如厕,锁门....
: 2. Semaphore:
: 还是一queue人排队等着去厕所大便,这个时候有3个厕所(不分男女假设),都需要钥
: 匙进去;钥匙都一样,这个需要有人告诉大家有几把钥匙available, 如果是0,那大家
: 耐心等。如果有1个钥匙,前面的一个人进去大便,如果有3把钥匙,一次放前面三个人
: 去厕所。

W***o
发帖数: 6519
9
我记得用mutex也能让其他thread 等的,比如这个: pthread_cond_wait()

【在 s********k 的大作中提到】
: 最重要有一个区别,mutex只能锁住的thread释放,semaphore没有这个限制,thread
: 1signal,thread 2 wait完全可以

s**********k
发帖数: 88
10
这是condition不是mutex
每个condition需要一个mutex保护,这个用来保护的mutex也是遵从同一个thread开关
的。

【在 W***o 的大作中提到】
: 我记得用mutex也能让其他thread 等的,比如这个: pthread_cond_wait()
H****S
发帖数: 1359
11
Semaphore是non-reentrant的,参考以下代码:
def foo() {
println("smile")
super.foo()
}
一个binary semaphoreh会出现死锁。

【在 w*s 的大作中提到】
: 据说mutex, semphore的情况是不同的,你们怎么看?
1 (共1页)
进入Programming版参与讨论
相关主题
请问这些问题应该在那种书上找到答案?is it possible to generate random tests for semphore/mutex/event APIs ... ?
请教一个线程同步的问题。Restaurant Reservation System...
c++是不是准备加一个glue layer把系统给隔离出来?about critical section
问一个读写锁的问题how to answer this question, thanks
question about the read/write lockermutex和semaphore的差别到底是什么?
pthread mutex能不能用与thread和process之间谁能推荐一个read-writer lock的C++实现? (转载)
condional variable thread sync 问题 (转载)精华区翻出来的MS老题,thread safe
how many ways in C++ to release a mutex?多线程 编程,process 和 thread 的一些问题。
相关话题的讨论汇总
话题: mutex话题: semaphore话题: semphore话题: release话题: binary