g******r 发帖数: 292 | 1 POSIX 中的 function: pthread_cond_wait(&cond, &mutex);
为什么 wait condition 需要用到 mutex? 如果我要保护资源, 完全可以用别的
mutex, 没必要一定放到和wait condition 一起用吧?
而且我发现POSIX中没有等multiple conditions 的function, 象WIN32 中的
WaitForMultipleObject 那样的???? |
t*******y 发帖数: 81 | 2 好像把conditions的file descriptor取出来,然后可以用
select一起等
【在 g******r 的大作中提到】 : POSIX 中的 function: pthread_cond_wait(&cond, &mutex); : 为什么 wait condition 需要用到 mutex? 如果我要保护资源, 完全可以用别的 : mutex, 没必要一定放到和wait condition 一起用吧? : 而且我发现POSIX中没有等multiple conditions 的function, 象WIN32 中的 : WaitForMultipleObject 那样的????
|
c******n 发帖数: 4965 | 3 the condition notification needs a mutex to protect it,
I forgot the details, but the original paper (1970s ??) did show it
【在 g******r 的大作中提到】 : POSIX 中的 function: pthread_cond_wait(&cond, &mutex); : 为什么 wait condition 需要用到 mutex? 如果我要保护资源, 完全可以用别的 : mutex, 没必要一定放到和wait condition 一起用吧? : 而且我发现POSIX中没有等multiple conditions 的function, 象WIN32 中的 : WaitForMultipleObject 那样的????
|
l**t 发帖数: 6971 | 4 这个mutex不是用来保护资源的。condition variable和mutex是成对用的。
condition variable没有signal的时候,the calling thread blocks on
this mutex, so you don't have to do busy wait. |