就像

pthread_rwlock_t lock;
pthread_rwlock_rdlock(&lock);
pthread_rwlock_wrlock(&lock);

spinlock中的锁是类似的吗?

最佳答案

读锁和写锁的区别在于,读锁是共享的(即可以由多个线程获取),而写锁是互斥的(只有在没有其他锁生效的情况下才能获取)。
pthread spinlock接口只支持带有pthread_spin_lock()的独占锁,因此这是不可能现成的。但是,您可以通过维护适当的(计数器)结构并使用pthread_spin_trylock()(当然,对该结构的访问也必须同步)来模拟上述行为。然而,这可能会抵消自旋锁“轻量”的巨大优势。

关于c - 有读自旋锁和写自旋锁吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47347261/

10-12 15:32