c - 互斥体初始化 -(UNIX)

标签 c unix pthreads mutex

在下面的代码中,初始化了一个mutexNULL有什么意义。

pthread_mutex_init(&a->monitor,NULL);

我想知道为什么我们传递 NULL 作为第二个参数。

最佳答案

第二个参数是指向 pthread_mutexattr_t 结构的指针,它允许您调整互斥量的行为; NULL 表示“这里没有特殊选项,使用默认的互斥行为。”

大多数互斥锁选项仅在边缘情况下有用(避免优先级反转死锁,在进程而非线程之间共享互斥锁),更有用的选项(例如递归控制)仅在 2008 年 POSIX 修订版中标准化,这意味着您还不能依赖它们的跨平台存在。 paxdiablo 的回答有一个完整的列表。

关于c - 互斥体初始化 -(UNIX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3673988/

相关文章:

c - 通过输入c中的位置来查找字符串的字符

bash - 在 bash 中检查文件扩展名的最简单方法?

c - select() 未检测到传入数据

c++ - 访问本地 linux 线程栈 (pthreads)

c - 异步返回尚未完全 "set up"(或已处理)的结果(作为结构)的最佳方法是什么

c - 头文件中的数组声明

c - 关于C中指针和数组的问题

python - 如何在第一次调用 paramiko 命令时设置密码?

c - 为什么退出的子进程会导致父进程的 sigsuspend 调用在 macOS 上返回?

c - 在C中,检查字符串中的偏移量并计算字节数