当前位置:网站首页>同步/异步、阻塞/非阻塞 与 IO
同步/异步、阻塞/非阻塞 与 IO
2022-07-29 06:40:00 【HTmonster】
同步与异步
- 关键:能不能同时工作
阻塞与非阻塞
- 关键: 能不能动
两两组合
同步阻塞
- 可能表现:一个线程在等待
同步非阻塞
- 可能表现:一个线程在正常运行
异步阻塞
- 可能表现:多个线程在等待
异步非阻塞
- 可能表现:多个线程正常运行
I/O操作
- 过程1:等待数据到来
- 过程2:读写、拷贝数据
阻塞IO与非阻塞IO
阻塞IO:用户进程参与上述两个过程,被阻塞在IO过程上
非阻塞IO:用户进程不用参与到上述的两个过程,等完成后,内核通知用户线程
异步IO与信号驱动IO
- 信号驱动IO:当描述符数据就绪时,通过产生SIGIO信号发起对应用程序信号关联函数的调用,应用程序可通过recvfrom进行数据拷贝(还需要自己拷贝)
- 异步IO: 应用程序触发系统调用后可立即返回,内核在数据拷贝完成后再对应用程序发出信号,触发应用程序逻辑。(不需要自己拷贝)
模型对比
边栏推荐
猜你喜欢
win11系统错误:由于找不到 iertutil.dll,无法继续执行代码。重新安装程序可能会解决此问题
作业7.28 文件IO与标准IO
要不要满足客户所有的需求
Thread synchronization - producers and consumers, tortoise and rabbit race, dual thread printing
Excel文件读写(创建与解析)
SQL优化
Revolution of game assets
spark学习笔记(七)——sparkcore核心编程-RDD序列化/依赖关系/持久化/分区器/累加器/广播变量
DM data guard cluster setup
Flink real time warehouse DWD layer (traffic domain) template code
随机推荐
Flink real-time warehouse DWD layer (transaction domain - additional purchase dimension degradation processing) template code
Excel file reading and writing (creation and parsing)
tp6 使用 ProtoBuf
Summary of OCR optical character recognition methods
Vscode remote debugging PHP solution through remotessh and Xdebug
Student achievement ranking system based on C language design
Flink实时仓库-DWD层(交易域-加购维度退化处理)模板代码
Flink实时仓库-DWD层(下单-多张表实现join操作)模板代码
MVFuseNet:Improving End-to-End Object Detection and Motion Forecasting through Multi-View Fusion of
Use vscode to configure Mysql to realize connection, query, and other functions
自定义事件
上采样之反卷积操作
作业7.28 文件IO与标准IO
Flink实时仓库-DWD层(kafka-关联mysql的lookup join)模板代码
Simulation volume leetcode [ordinary] 172. Zero after factorial
基于C语言设计的学生成绩排名系统
[C language brush leetcode] 1054. Bar code with equal distance (m)
Flink实时仓库-DWD层(处理复杂数据-流和表的装换处理)模板代码
Flink实时仓库-DWD层(流量域)模板代码
【C语言刷LeetCode】2332. 坐上公交的最晚时间(M)