|
|
sem_wait就是pv操作的p操作吧,那我能不能将sem_wait语句用一个判断语句代替啊?比如说:if(value>0)然后执行下面的操作,如果value<=0直接返回,
假如有一个队列,可能有多个线程对队列进行insert,or delete操作,在insert_queue函数中:
delete_queue()
{
sem_wait(que_is_empty);
然后对队列加锁;
取出元素,将个数减一;
}
能否改为:
delete_queue()
{
if(que_is_empty)
return;
加锁;
取元素,减一;
}
不清楚在什么场合下必须用sem_wait啊?高手们讲讲吧,多谢了! |
|