C 带有自旋锁的pthreads条件变量

C 带有自旋锁的pthreads条件变量,c,multithreading,pthreads,C,Multithreading,Pthreads,条件变量的pthreads实现使用pthread_mutex_t作为其锁定机制。我想不出为什么pthread\u spinlock\u t也不能工作。但是因为这是C而不是C++,我不能像互斥体那样处理自旋锁。 因此,我的问题是: “条件变量”实现不能使用pthread\u spinlock\u t而不是pthread\u mutex\u t有什么原因吗 该代码是否存在于我可以查看和/或使用的地方 我认为条件变量不使用/与自旋锁配对的原因与 但是,如果您正在实现自己的条件变量,则可以使其与自旋锁

条件变量的pthreads实现使用pthread_mutex_t作为其锁定机制。我想不出为什么pthread\u spinlock\u t也不能工作。但是因为这是C而不是C++,我不能像互斥体那样处理自旋锁。 因此,我的问题是:

  • “条件变量”实现不能使用pthread\u spinlock\u t而不是pthread\u mutex\u t有什么原因吗
  • 该代码是否存在于我可以查看和/或使用的地方
我认为条件变量不使用/与自旋锁配对的原因与


但是,如果您正在实现自己的条件变量,则可以使其与自旋锁配对,而不是与互斥锁配对。没有根本原因说明它不起作用。

你的意思是,除了条件变量被定义/设计为与互斥体一起使用之外?另一方面,如果基础互斥体恰好是一个自适应互斥体,它可能会旋转,并给你两个世界中最好的一个。@DonalFellows,pthread条件可以定义/设计为使用互斥锁。我不认为条件变量的一般概念需要它,但这是我问题的一部分。@user2719058,在我的测试中,使用pthread\u mutex\u ADAPTIVE\u NP类型定义的pthread\u mutex\t远远慢于我的大多数无争用锁的自旋锁。