在图书馆pthread.h
是pthread_rwlock_t
先进先出?
在下面的示例中,我们有多个线程。想象一下,每个线程都保证按顺序运行。
// Thread 1 - does a write lock
pthread_rwlock_wrlock(&lock);
// Thread 2 - does a read but has to wait for 1
pthread_rwlock_rdlock(&lock);
// Thread 3 - does a read but has to wait for 1
pthread_rwlock_rdlock(&lock);
// Thread 4 - does a write but has to wait for 1
pthread_rwlock_wrlock(&lock);
// Thread 1 - unlocks
pthread_rwlock_unlock(&lock);
// who gets the lock?
线程 1 释放锁后,谁获得了锁?是否保证线程 2 和 3 可以?还是可以给4?
同样,假设每个线程都保证按顺序运行,并且线程 1 在所有线程都尝试获取锁之前不会释放锁。