互斥初始化 - (UNIX)

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作为第二个参数.

zwo*_*wol 6

第二个参数是一个指向pthread_mutexattr_t结构的指针,它允许您调整互斥锁的行为; NULL表示"此处没有特殊选项,请使用默认的互斥行为".

大多数互斥选项仅在边缘情况下有用(避免优先级反转死锁,在进程而不是线程之间共享互斥锁),更有用的(例如递归控制)仅在2008版POSIX中标准化,这意味着你可以'但仍然依赖于他们的跨平台存在.paxdiablo的答案有一个全面的清单.