就像
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/