1 读写锁定义
读写锁适用于多个读,单个或者少量写操作,它是一种特别的互斥锁;
2 示例代码如下:
3 说明:
3.1 写锁锁定时,其他所有读写操作,必须等待;
上图中的30行打开时候,输出如下,全部处于等待阶段;
in readThread:139786146199296
in readThread:139786154592000
in readThread:139786137806592
in writeThread:139786121021184
in readThread:139786129413888
3.2 读锁,其他读操作不影响,但是写操作等待;
上图31行打开,输出如下,读操作不受影响,写操作等待;
in readThread:139932255573760
in readThread:139932238788352
tid is: -2090682624, read
in readThread:139932247181056
tid is: -2082289920, read
tid is: -2073897216, read
in readThread:139932230395648
tid is: -2099075328, read
in writeThread:139932222002944
3.3 非阻塞式读写锁;
使用pthread_rwlock_tryrdlock代替12行pthread_rwlock_rdlock,不会进行阻塞,但是会返回错误码;