Linux读写锁释放,Linux读写锁的使用
读写锁是用来解决读者写者问题的,读操作可以共享,写操作是排它的,读可以有多个在读,写只有唯一个在写,写的时候不允许读。
具有强读者同步和强写者同步两种形式:
强读者同步:当写者没有进行写操作时,读者就可以访问;
强写者同步: 当所有写者都写完之后,才能进行读操作,读者需要最新的信息,一些实时性较高的系统会用到这种锁。
读写锁的初始化:
pthread_rwlock_t m_rw_lock;
pthread_rwlock_init(pthread_rwlock_t*, pthread_rwattr_t*);
获取读写锁的读锁操作:分为阻塞式获取和非阻塞式获取,如果读写锁由一个写者持有,则读线程会阻塞直到写入者释放读写锁。
阻塞式:pthread_rwlock_rdlock(pthread_rwlock_t);
非阻塞式:pthread_rwlock_tryrdlock(pthread_rwlock_t);
返回值:0,表示成功; 非0表示错误码;非阻塞会返回ebusy而不会让线程等待。
获取读写锁的写锁操作:分为阻塞和非阻塞,如果对应的读写锁被其它写者持有,或者读写锁被读者持有,该线程都会阻塞等待。
阻塞式:pthread_rwlock_wrlock(pthread_rwlock_t*);
非阻塞式:pthread_rwlock_trywrlock(pthread_rwlock_t*);
释放读写锁:
pthread_rwlock_unlock(pthread_rwlock_t*);
互斥锁与读写锁的区别:
1、当访问临界区的资源时(访问的含义包括所有的操作),需要上互斥锁;
2、当对数据(互斥锁中的临界区资源)进行读取时,需要上读取锁,当对数据进行写入时,需要上写入锁。
读写锁的优点:
对于读数据较修改数据频繁的应用,用读写锁代替互斥锁可以提高效率。因为使用互斥锁时,即使是读出数据(相当于操作临界区资源)都需要上互斥锁;而采用读写锁则允许在任一时刻多个读出
者存在,提高了并发性。
Linux读写锁释放,Linux读写锁的使用相关推荐
- node linux cache补释放,linux下释放cache内存
细心的朋友会注意到,当你在linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法 ...
- 从自旋锁、睡眠锁、读写锁到 Linux RCU 机制讲解
总结一下 O/S 课程里面和锁相关的内容. 本文是 6.S081 课程的相关内容总结回顾结合 Real World 的 Linux 讲解各种锁和 RCU lock free 机制原理, 前置知识是基本 ...
- Linux多线程开发-线程同步-读写锁pthread_rwlock_t
1.读写锁概念 对资源的访问抽象为两种类型,即独占和共享.独占资源具有排他性,例如写操作.共享资源可以同时由多个线程访问,不对该资源执行写操作.针对资源的读和写操作分别加锁,写操作加锁与互斥锁相同,但 ...
- Linux 多线程 ”一写多读” 模式下的无锁设计
缘起 双buffer "无锁" 设计 指针的切换 ptr 竞争条件的解决 指针访问丢失 延伸 结语 缘起 在linux多线程环境下对同一变量进行读写时,经常会遇到读写的原子性问题, ...
- java锁(公平锁和非公平锁、可重入锁(又名递归锁)、自旋锁、独占锁(写)/共享锁(读)/互斥锁、读写锁)
前言 本文对Java的一些锁的概念和实现做个整理,涉及:公平锁和非公平锁.可重入锁(又名递归锁).自旋锁.独占锁(写)/共享锁(读)/互斥锁.读写锁 公平锁和非公平锁 概念 公平锁是指多个线程按照申请 ...
- Java 独占锁ReentrantLock、读(悲观读)写锁ReentrantReadWriteLock、读(乐观读/悲观读)写锁StampedLock
1.AbstractQueuedSynchronizer 锁必然要知道AbstractQueuedSynchronizer(AQS),AQS提供了一个框架,用于实现依赖于先进先出(FIFO)等待队列的 ...
- [转]Linux内核的文件预读(readahead)
编者按:Linux文件预读算法磁盘I/O性能的发展远远滞后于CPU和内存,因而成为现代计算机系统的一个主要瓶颈.预读可以有效的减少磁盘的寻道次数和应用程序的I/O等待时间,是改进磁盘读I/O性能的重要 ...
- linux 下串口转usb不能发送数据包,Linux ,USB转串口驱动,没法读到数据
Linux ,USB转串口驱动,无法读到数据 usb 1-1.1: new full-speed USB device number 5 using ehci-pci usb 1-1.1: New U ...
- linux内核新书,关于Linux,你该读哪些书
这是应读者要求写的一篇综合图书推荐文章,关于Linux的.图灵Linux经典书自然不少,另外,新出版的ARM,林纳斯大神的传纪,也深受读者欢迎.这次总结了每本书的优缺点,希望大家能找到真正适合自己阅读 ...
最新文章
- ASP在中小企业中具有巨大的潜在市场
- python将数字转变为中文读法-python中将阿拉伯数字转换成中文的实现代码
- 代码评审会议_如何将电话会议(和访问代码)另存为联系人
- intellij idea 导出可执行jar
- 分布式存储学习入门(一)
- zoj 1101 Gamblers 为什么总是WA?
- Matlab 黎卡提方程
- 详解Maven多模块Spring Boot项目从创建到打包
- 大师启动u盘pe系统装系统(Win03PE增强版)
- Excel文件解析性能对比(POI,easyexcel,xlsx-streamer)
- 变量存储重温及在Ubuntu系统和Keil中编程验证
- 如何在 Unity 中制作一个道具系统
- 插件式编程SBP框架极简教程(基于SpringBoot)
- 寻梦,总免不了迷茫1
- 游戏开发30课 cocoscreator骨骼贴图布局设置
- 基于matlab的雷达,基于Matlab的雷达系统仿真
- 基于springboot的社区养老系统(养老院)
- 最新电容笔推荐,2022年电容笔十大品牌排行榜
- win10 开机自动连接宽带最简单方法
- Android之发送短信和接收验证码