当前位置:网站首页>IO进阶之高级IO
IO进阶之高级IO
2022-07-20 11:26:00 【路溪非溪】
非阻塞IO
阻塞与非阻塞
为什么有阻塞式
(1)常见的阻塞:wait、pause、sleep等函数;read或write某些文件时
(2)阻塞式的好处非阻塞
(1)为什么要实现非阻塞
(2)如何实现非阻塞IO访问:O_NONBLOCK和fcntl
阻塞式IO的困境
程序中读取键盘
程序中读取鼠标
程序中同时读取键盘和鼠标
问题分析
并发式IO的解决方案
非阻塞式IO
多路复用IO
异步通知(异步IO)
IO多路复用原理
何为IO多路复用
(1)IO multiplexing
(2)用在什么地方?多路非阻塞式IO。
(3)select和poll
(4)外部阻塞式,内部非阻塞式自动轮询多路阻塞式IOselect函数介绍
poll函数介绍
IO多路复用实践
用select函数实现同时读取键盘鼠标
用poll函数实现同时读取键盘鼠标
异步IO
何为异步IO
(1)几乎可以认为:异步IO就是操作系统用软件实现的一套中断响应系统。
(2)异步IO的工作方法是:我们当前进程注册一个异步IO事件(使用signal注册一个信号SIGIO的处理函数),然后当前进程可以正常处理自己的事情,当异步事件发生后当前进程会收到一个SIGIO信号从而执行绑定的处理函数去处理这个异步事件。涉及的函数:
(1)fcntl(F_GETFL、F_SETFL、O_ASYNC、F_SETOWN)
(2)signal或者sigaction(SIGIO)代码实践
存储映射IO
mmap函数
LCD显示和IPC之共享内存
存储映射IO的特点
(1)共享而不是复制,减少内存操作
(2)处理大文件时效率高,小文件不划算
边栏推荐
- 将数据集转换为VOC格式
- DAO的精简化治理的委托机制
- Delegation mechanism of simplified governance of Dao
- 【C语言】冒泡排序升级版---适用任意类型
- New changes in Web3 social track: change to ethnic and situational
- promise 基础使用
- ARM 如果通过笔记本机上外网?
- 数据整合 | 国内外数据整合有什么工具?
- Simulate the readline() function of BufferedReader with reader
- Network and VPC experiment
猜你喜欢
随机推荐
ARM64 内存64位宽与32位位宽 速度对比
图的基本定义和相关概念(一)
Rush's fluid usage (fltk UI Designer)
14 mental models in the encryption Market
自在与自为-黑格尔
ECCV 2022 | Kuangshi proposed a semi supervised target detection model, dense teacher, which achieved SOTA performance
NAT 的几种应用场景
编程必备,程序员应该都知道的7款文本编辑器
【Typora】This beta version of Typora is expired, please download and install a newer version.
Golang-- operation date
动作活体检测能力,构建安全可靠的支付级“刷脸”体验
Wallys/3×3/2×2 MIMO/ 802.11ac/ Mini PCIe /2,4GHz / 5GHz QCA 9880
[shutter -- top navigation bar] basic use of tabbarview
【Flutter -- 基础组件】图片组件 Image & Icon
如何下载视频文件
(note) CIE chromaticity diagram
iptables :chains, target
基于Tensorflow GPU2Ascend工具的TensorFlow网络模型迁移
CompleteFuture 并行异步返回处理
Rust之fluid用法(fltk ui 设计器)