linux系统编程学习笔记第十二节:线程的安全机制2(读写锁)(pthread_rwlock_rdlock、pthread_rwlock_wrlock、pthrd Unlock)
发布时间
阅读量:
阅读量
线程的安全机制——读写锁
读写锁机制
读写锁接口函数
pthread_rwlock_init 用于创建并初始化读写锁对象
pthread_rwlock_destroy 用于释放并销毁已创建的读写锁资源
pthread_rwlock_rdlock 用于获取读操作的锁定权限
pthread_rwlock_wrlock 用于获取写操作的锁定权限
pthread_rwlock_unlock 用于解除当前持有的锁定状态,无论是读锁还是写锁均可使用该函数进行释放
示例代码如下:
读写锁机制与并发控制
概念:
互斥锁与读写锁之间的差异主要体现在互斥锁的使用方式上。互斥锁的设计相对单一,其核心目的是在执行操作时防止其他线程对资源进行修改。然而,在实际应用中,许多场景仅需要读取数据,并不需要修改数据。而互斥锁却采取了一种“一刀切”的策略,即在操作期间不允许任何线程进行读取操作。为了解决这一问题,读写锁应运而生。
读写锁是一种具有特殊功能的互斥机制,它允许多个线程同时获取读锁,并且在这一过程中不会引发冲突(因为此时只是对数据进行查看,并未对其进行更改,因此不存在同步问题)。但一旦有线程尝试获取写锁,则此时该锁会转变为类似互斥锁的行为。如果在此之前已经有线程持有读锁或写锁,则当前请求写锁的操作将被阻塞。
特点:
1
全部评论 (0)
还没有任何评论哟~
