为什么我们可以允许多个线程同时运行?(sem_init(&sem,0,5((,我认为这意味着可以运行 5 个线程。那么为什么不会发生竞争条件呢>
sem_wait
不需要计数,sem_init
可以.但是您的基本问题仍然有效。
信号量通常不是为了阻止数据争用。它们用于您希望同时运行最多 n 个使用者的情况。
您应该使用phtread_mutex
来防止数据争用