从主线程锁定互斥锁并从另一个线程释放是一个好习惯吗?

或者我应该确保一个线程将全部完成?即:锁定和解锁

最佳答案

互斥锁只能由锁定它的同一个线程解锁。违反此规则的程序具有 未定义行为 并且不可移植或不稳定;当在稍微不同的系统上编译时,在不同的月相期间,或者在升级之后,它有时似乎可以工作,而在其他时候却会失败。

如果您确实需要这种行为(由一个线程锁定并由另一个线程解锁),信号量可能会满足您的需求。信号量没有所有者,任何线程基本上都可以随时调用 sem_postsem_wait

关于c - 在哪里解锁 pthread 中的互斥锁?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7221209/

10-12 20:23