c++ - linux中的pthread_mutex_t是否可重入(如果一个线程试图获取它已经持有的锁,则请求成功)

标签 c++ c linux multithreading

我来自 Java,所以我熟悉同步而不是互斥。 我想知道 pthread_mutex_t 是否也是可重入的。如果没有,是否还有其他机制?

谢谢

最佳答案

这取决于互斥量类型,默认情况下不进行检查,并且尝试在同一线程中多次锁定它会导致未定义的行为。了解一下 here .

您可以创建类型为 PTHREAD_MUTEX_RECURSIVE 的互斥锁,以便能够递归锁定它,这是通过提供 pthread_mutexattr_t 来完成的将所需的互斥类型设为 pthread_mutex_init

关于c++ - linux中的pthread_mutex_t是否可重入(如果一个线程试图获取它已经持有的锁,则请求成功),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11567877/

相关文章:

用于 GUI 应用程序的跨平台 C 库?

linux - 如何使用 curl 将文本文件打印到 jira api

linux - ${var :-defaultvalue} in fish? 等价于什么

windows-7 - Windows现在必须重新启动,因为[我们的服务名称]服务意外终止

c++ - 如何在新进程中运行一个函数?

C - 如何获取连接到我的电脑的所有IP

java - CentOS 上的多个 Java 版本

c++ - 您可以使用 Boost.Regex 来解析流吗?

php - C++按字符串调用函数,与PHP性能对比,C++如何优化代码?

c - 如何提高用 C 编写的阻塞队列的性能?