互斥锁是独占、互斥的,而读写锁中的读锁允许多个线程同时访问临界区,写锁跟互斥锁一样不允许多个线程同时访问临界区。当使用读锁占用临界区时,有读锁申请该临界区被阻塞,后面再有读锁申请访问该临界区时也会被阻塞。读写锁的创建跟互斥锁一样,都分为四个步骤:创建读锁或者写锁对象、初始化、上锁、解锁、销毁读锁/写锁对象。下面将通过一个实例展示读写锁用法。读写锁一般应用在大量并发请求的场合!
一、POSIX下读写锁调用实例(功能:互斥锁和读写锁速度大PK)
2.1在Linux指定目录下新建一个文件名为test.cpp的空白文件,在其中添加如下代码:
2.2在终端输入如下命令,结果如图所示:
g++ -o test test.cpp -lpthread
参考内容:
《Linux C与C++ 一线开发实践》 朱文伟,李建英著. -北京:清华大学出版社,2018 406-440页