在下面的代码中,初始化了一个mutex。NULL有什么意义。
pthread_mutex_init(&a->monitor,NULL);
我想知道为什么我们传递 NULL 作为第二个参数。
最佳答案
第二个参数是指向 pthread_mutexattr_t
结构的指针,它允许您调整互斥量的行为; NULL 表示“这里没有特殊选项,使用默认的互斥行为。”
大多数互斥锁选项仅在边缘情况下有用(避免优先级反转死锁,在进程而非线程之间共享互斥锁),更有用的选项(例如递归控制)仅在 2008 年 POSIX 修订版中标准化,这意味着您还不能依赖它们的跨平台存在。 paxdiablo 的回答有一个完整的列表。
关于c - 互斥体初始化 -(UNIX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3673988/