条件变量的 pthreads 实现pthread_cond_t使用 pthread_mutex_t 作为其锁定机制。我想不出为什么 pthread_spinlock_t 也不起作用的任何原因。但是因为这是 C 而不是 C++,所以我不能将自旋锁视为互斥锁。
所以我的问题是:
- 为什么“条件变量”实现不能使用 pthread_spinlock_t 而不是 pthread_mutex_t 有什么原因吗?
- 该代码是否存在于我可以查看和/或使用它的地方?
条件变量的 pthreads 实现pthread_cond_t使用 pthread_mutex_t 作为其锁定机制。我想不出为什么 pthread_spinlock_t 也不起作用的任何原因。但是因为这是 C 而不是 C++,所以我不能将自旋锁视为互斥锁。
所以我的问题是:
我相信条件变量不使用/配对自旋锁的原因与一般不使用自旋锁的原因几乎相同。
但是,如果您要实现自己的条件变量,则可以将其与自旋锁配对,而不是与互斥锁配对。没有根本原因它不起作用。