c - 互斥锁总是由线程持有吗?

标签 c multithreading mutex

如果线程想要访问临界区,则该线程会获取互斥量。

但是在线程尝试访问该区域之前,互斥量(如果以前从未使用过)是“空闲的”还是互斥量始终由线程持有?

最佳答案

互斥量可以是“免费的”(即解锁)。线程只能锁定(获取)未锁定的互斥量。

此外,pthread mutex 可以创建为具有静态存储持续时间的全局变量,使用 PTHREAD_MUTEX_INITIALIZE 进行初始化 - 这种互斥对象实际上是在“编译时间”,当然没有线程可以从那里保存它...

关于c - 互斥锁总是由线程持有吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53034505/

相关文章:

java - 快速处理数据

c# - ASP.NET C# 代码中的互斥释放问题

C++ 意外的多线程行为

c - 使用 C 编程的电子安全设计

c++ - 阻塞流重定向的段错误

java - 线程作为 GC 根

python - 从另一个线程检查主线程是否还活着

multithreading - 给定足够的内存,当只有一个专用的写线程时,是否不需要锁?

C:编译器可以识别哪些变量?

c++ - 这个程序是如何工作的?