Advertisement

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)

还没有任何评论哟~