为什么获取信号量和 wait() 的值会出现问题
Why would there be a problem to get the value of a semaphore and wait()
为什么获取信号量的值并检查它,以便当信号量的值 > 0 时,我们调用 wait() 会出现问题?
即:为什么下面的代码会有问题?
if (getValue(&sem)>0){
wait(&sem);
}
看起来问题出在这里:
&sem>0
您没有将指向信号量 (&sem) 的指针作为参数传递,而是传递了一个 int (&sem > 0)
你试过了吗
getValue(&sem) > 0
?
为什么获取信号量的值并检查它,以便当信号量的值 > 0 时,我们调用 wait() 会出现问题? 即:为什么下面的代码会有问题?
if (getValue(&sem)>0){
wait(&sem);
}
看起来问题出在这里:
&sem>0
您没有将指向信号量 (&sem) 的指针作为参数传递,而是传递了一个 int (&sem > 0)
你试过了吗
getValue(&sem) > 0
?