当前位置:网站首页>同步/异步、阻塞/非阻塞 与 IO
同步/异步、阻塞/非阻塞 与 IO
2022-07-29 06:40:00 【HTmonster】
同步与异步
- 关键:能不能同时工作

阻塞与非阻塞
- 关键: 能不能动

两两组合
同步阻塞
- 可能表现:一个线程在等待

同步非阻塞
- 可能表现:一个线程在正常运行

异步阻塞
- 可能表现:多个线程在等待

异步非阻塞
- 可能表现:多个线程正常运行

I/O操作
- 过程1:等待数据到来
- 过程2:读写、拷贝数据
阻塞IO与非阻塞IO
阻塞IO:用户进程参与上述两个过程,被阻塞在IO过程上

非阻塞IO:用户进程不用参与到上述的两个过程,等完成后,内核通知用户线程

异步IO与信号驱动IO
- 信号驱动IO:当描述符数据就绪时,通过产生SIGIO信号发起对应用程序信号关联函数的调用,应用程序可通过recvfrom进行数据拷贝(还需要自己拷贝)

- 异步IO: 应用程序触发系统调用后可立即返回,内核在数据拷贝完成后再对应用程序发出信号,触发应用程序逻辑。(不需要自己拷贝)

模型对比

边栏推荐
- ERROR 1045 (28000) Access denied for user ‘root‘@‘localhost‘解决方法
- 个人博客系统(附源码)
- Relative date used by filter in salesforce
- WPF简单登录页面的完成案例
- MySQL advanced (Advanced) SQL statement (I)
- [redis] redis development specifications and precautions
- Vscode remote debugging PHP solution through remotessh and Xdebug
- Excel文件读写(创建与解析)
- 要不要满足客户所有的需求
- Unity发送Post请求给GoLang服务端解析并返回
猜你喜欢

Spark Learning Notes (VII) -- spark core core programming - RDD serialization / dependency / persistence / partition / accumulator / broadcast variables

Improved Pillar with Fine-grained Feature for 3D Object Detection论文笔记

spark学习笔记(七)——sparkcore核心编程-RDD序列化/依赖关系/持久化/分区器/累加器/广播变量

Operator3-设计一个operator

约瑟夫环问题

彻底搞懂kubernetes调度框架与插件

以太网接口介绍

最新百亿量化私募名单

VMware16创建虚拟机:无法创建新虚拟机,不具备执行此操作的权限

Excel file reading and writing (creation and parsing)
随机推荐
vue-router路由缓存
个人博客系统(附源码)
VMware16创建虚拟机:Win11无法安装
MySQL----多表查询
Simulation volume leetcode [normal] 081. Search rotation sort array II
Custom events
2022-07-28:以下go语言代码输出什么?A:AA;B:AB;C:BA;D:BB。 package main import ( “fmt“ ) func main() { f
彻底搞懂kubernetes调度框架与插件
基于C语言设计的学籍管理系统
2D cartoon rendering - advanced skills
dba
Spark Learning Notes (VII) -- spark core core programming - RDD serialization / dependency / persistence / partition / accumulator / broadcast variables
Vite3.0都发布了,你还能卷得动吗(新特性一览)
20-40k | mecarmand 3D vision algorithm / software / Product Manager Recruitment
聊天机器人有何用处?有何类型?看完这些就明白了!
Use vscode to configure Mysql to realize connection, query, and other functions
VMware16安装虚拟机遇到的问题
When NPM is installed, it is stuck. There are five solutions
ERROR 1045 (28000) Access denied for user ‘root‘@‘localhost‘解决方法
buck电路boot电容短路和断路实测波形