Pav*_*tar 0 c unix mutex pthreads
在下面的code.A 互斥是initialized.what是意义NULL.
pthread_mutex_init(&a->monitor,NULL);
Run Code Online (Sandbox Code Playgroud)
我想知道为什么我们传递NULL作为第二个参数.
第二个参数是一个指向pthread_mutexattr_t
结构的指针,它允许您调整互斥锁的行为; NULL表示"此处没有特殊选项,请使用默认的互斥行为".
大多数互斥选项仅在边缘情况下有用(避免优先级反转死锁,在进程而不是线程之间共享互斥锁),更有用的(例如递归控制)仅在2008版POSIX中标准化,这意味着你可以'但仍然依赖于他们的跨平台存在.paxdiablo的答案有一个全面的清单.