为什么要获取信号量和wait()的值会有问题

问题描述 投票:0回答:1

为什么获取信号量的值并检查它以便当信号量的值> 0时,我们调用wait()会有问题?即:为什么以下代码会出现问题?

if (getValue(&sem)>0){
    wait(&sem);
}
c synchronization semaphore getvalue
1个回答
0
投票

看起来问题在这里:

&sem>0

你没有将指针作为参数传递给信号量(&sem),而是一个int(&sem> 0)

你试过了吗

getValue(&sem) > 0

?

© www.soinside.com 2019 - 2024. All rights reserved.