Linux系统编程_课时83+84_读写锁的特性+使用场景
课时83+84_读写锁的特性+使用场景 文章目录 课时83+84_读写锁的特性+使用场景 1、读写锁的特性 1、读写锁是几把锁 2、读写锁的类型 3、读写锁的特性 2、读写锁的使用场景 2.1、线程A加写锁成功,线程B请求读锁 2.2、线程A持有读锁,线程B请求写锁 2.3、线程A持有读锁,线程B请求读锁 2.4、线程A持有读锁,然后线程B请求写锁,然后线程C请求读锁 2.5、线程A持有写锁,然后线程B请求读锁,然后线程C请求写锁 3、互斥锁、读写锁的选择 1、读写锁的特性 1、读写锁是几把锁 读写锁只有一把锁,有读属性和写属性。 pthread_rwlock_t lock ; 2、读写锁的类型 (1)读锁:对内存做读操作 (2)写锁:对内存做写操作 3、读写锁的特性 (1)线程A加 读锁 成功,又来了三个线程,做 读 操作,可以 加锁成功 。 读共享---并行处理 (2)线程A加 写锁 成功,又来了三个线程,做 读 操作,三个线程 阻塞 。 写独占---串行处理 (3)线程A加 读锁 成功,又来了B线程加 写锁 阻塞,又来了C线程加 读锁阻塞 。 读写不能同时 写的优先级高 线程A解锁后,线程B处理,线程B解锁后,线程C处理。 2、读写锁的使用场景 2.1、线程A加写锁成功,线程B请求读锁 线程B阻塞 :读写不能同时 2.2、线程A持有读锁,线程B请求写锁 线程B阻塞