4. API 比较细节 |
![]() ![]() |
读者/写者锁允许多于一个的线索,同时读一个变量;使用此类型的锁,在某一时刻仅有一个线索能访问变量以修改它。
#include <synch.h>
int rwlock_init (rwlock_t *rwlp, int type, void *arg)
int rwlock_destroy (rwlock_t *rwlp)
int rw_rdlock (rwlock_t *rwlp)
int rw_wrlock (rwlock_t *rwlp)
int rw_unlock (rwlock_t *rwlp)
int rw_tryrdlock (rwlock_t *rwlp)
int rw_trywrlock (rwlock_t *rwlp)
rwlock_t rwlp;
int ret;
ret = rwlock_init (&rwlp, USYNC_THREAD, 0); /* to be used within this process only */
rwlock_t rwlp;
int ret;
ret = rwlock_init (&rwlp, USYNC_PROCESS, 0); /* to be used among all processes */
rwlock_t rwlp;
int ret;
ret = rwlock_destroy(&rwlp); /* rwlock is destroyed */
rwlock_t rwlp;
int ret;
ret = rw_rdlock (&rwlp); /* acquire the rwlock for reading */
ret = rw_wrlock (&rwlp); /* acquire the rwlock for writing */
rwlock_t rwlp;
int ret;
ret = rw_unlock (&rwlp); /* release the rwlock */
rwlock_t rwlp;
int ret;
ret = rw_tryrdlock (&rwlp); /* try to grab rwlock for reading */
ret = rw_trywrlock (&rwlp); /* try to grab rwlock for writing */
Copyright: NPACT | ![]() ![]() |