如果线程想要访问临界区,则该线程会获取互斥量。
但是在线程尝试访问该区域之前,互斥量(如果以前从未使用过)是“空闲的”还是互斥量始终由线程持有?
最佳答案
互斥量可以是“免费的”(即解锁)。线程只能锁定(获取)未锁定的互斥量。
此外,pthread mutex 可以创建为具有静态存储持续时间的全局变量,使用 PTHREAD_MUTEX_INITIALIZE
进行初始化 - 这种互斥对象实际上是在“编译时间”,当然没有线程可以从那里保存它...
关于c - 互斥锁总是由线程持有吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53034505/