C语言 信号量如何保护共享数据?



为什么我们可以允许多个线程同时运行?(sem_init(&sem,0,5((,我认为这意味着可以运行 5 个线程。那么为什么不会发生竞争条件呢>

sem_wait

不需要计数,sem_init可以.但是您的基本问题仍然有效。

信号量通常不是为了阻止数据争用。它们用于您希望同时运行最多 n 个使用者的情况。

您应该使用phtread_mutex来防止数据争用

最新更新