操作系统专栏——线程同步之读写锁

之前两篇文章粗劣说了互斥锁和自旋锁的原理,从本质上来说都是针对线程同步问题进行的一定的措施。互斥锁是直接去阻断另一个线程的访问,而自旋锁是让线程进入死循环不断申请资源。

而读写锁针对互斥锁和自旋锁都进行了一定的改进。

主要根据临界资源,进行了考量:

我们在实际的开发环境中,很容易就会碰见针对数据库的资源多读少写的情况,更多的是select居多。而读取并不会改变临界资源的值。如果频繁加锁,释放锁,那么对于性能会造成极大的损失。

是否存在一种更有效的同步方法呢?

没错,就是读写锁。

读写锁可以做到:

  • 允许多个线程读
  • 但只允许一个线程写

操作系统专栏——线程同步之读写锁