Fan*_*c23 17 c++ multithreading pthreads
我浏览了http://www.opengroup.org/onlinepubs/009695399/functions/pthread_cond_wait.html中的文档,但未明确提及.任何迅速的回应将非常感谢.
Art*_*yom 26
是.这是常见的实践:
典型例子:
mutex queue_mutex;
cond queue_is_not_full_cond;
cond queue_is_not_empty_cond;
push()
lock(queue_mutex)
while(queue is full)
wait(queue_is_not_full_cond,queue_mutex);
do push...
signal(queue_is_not_empty_cond)
unlock(queue_mutex)
pop()
lock(queue_mutex)
while(queue is empty)
wait(queue_is_not_empty_cond,queue_mutex);
do pop...
signal(queue_is_not_full_cond)
unlock(queue_mutex)
Run Code Online (Sandbox Code Playgroud)
xsc*_*ott 18
是.如果您有等待的条件,这有时候是一个好主意.例如,您可能有"not full"和"not empty"等的队列和条件变量...将数据放入队列的人等待"not full".从队列中取出数据的人等待"不为空".它们都使用相同的互斥锁.