【网络编程】(二)同步和异步,阻塞和非阻塞,多路复用技术
来源:互联网 发布:suse 11 安装yum 编辑:程序博客网 时间:2024/05/23 13:53
基本概念解析
1) 阻塞和非阻塞:
阻塞和非阻塞:是进程在访问数据的时候,数据内是否准备就绪的一种处理方式,当数据没有准备的时候
2)同步和异步
读写事件交给一个单独的线程来处理。
Client Select 管家 BOSS
1) 阻塞和非阻塞:
阻塞和非阻塞:是进程在访问数据的时候,数据内是否准备就绪的一种处理方式,当数据没有准备的时候
阻塞:往往需要等待缓冲区中的数据准备好过后才处理其他的事情,否则一直等待。
非阻塞:当进程访问数据缓冲区的时候 数据没有准备好的时候 直接返回 不需要等待。数据有的时候 也直接返回.2)同步和异步
同步和异步:都是基于应用程序和操作系统处理IO时间锁采用的方式。
同步应用程序要直接参与IO读写的操作。必须阻塞在某个方法上(read 或 write)面等待我们的IO时间完成 (阻塞IO事件或则通过轮询IO事件的方式)。对线程的性能开销比较大。
异步:所有的IO读写交给操作系统去处理.。这个时候 我们可以去做其他的事情 并不需要去完成真正的IO操作,当操作完成IO后 会通知我们的应用程序。
3)IO事件的轮询 --多路复用技术(select模式)
读写事件交给一个单独的线程来处理。
这个线程完成IO事件的注册。
并不断的去轮询我们的读写缓冲区 看是否有数据准备好。
通知相应读写线程.
这样的话 以前的读写线程就可以做其他的事情 这个时候阻塞的不是所有的IO线程 阻塞的select这个线程.
Client Select 管家 BOSS
当客人来的时候,就给管家说 我来了,
管家得到这个注册信息后, 给BOSS说 我这里有一个或则多个客人
BOSS你去给某人A这件东西,给另外人B这样东西。
这个时候 客人是可以去做自己的事情的,比如看看花园等等,
当管家知道boss给他任务后 他就是去找对应的某人 告诉他boss给他某样东西。(根据我们的注册信息)
阅读全文
1 0
- 【网络编程】(二)同步和异步,阻塞和非阻塞,多路复用技术
- 网络编程概念:同步、异步、阻塞和非阻塞
- 网络编程----阻塞、非阻塞和同步、异步IO
- Android 网络编程之同步,异步,阻塞和非阻塞
- 多路复用及同步、异步和阻塞、非阻塞
- 网络编程-阻塞非阻塞同步异步
- 同步,异步,阻塞,非阻塞 和 几种网络模型
- 同步和异步、阻塞和非阻塞
- 同步和异步、阻塞和非阻塞
- 同步和异步,阻塞和非阻塞
- 同步和异步,阻塞和非阻塞
- 同步和异步,阻塞和非阻塞
- 同步和异步,阻塞和非阻塞
- 同步和异步、阻塞和非阻塞
- 同步和异步、阻塞和非阻塞
- 同步和异步,阻塞和非阻塞
- 同步和异步,阻塞和非阻塞
- 同步和异步,阻塞和非阻塞
- Redis的 MISCONF Redis is configured to save RDB snapshots问题
- Leetcode
- 网络判断
- Sigmoid 函数
- Eclipse使用Maven创建Web项目+整合SSM框架
- 【网络编程】(二)同步和异步,阻塞和非阻塞,多路复用技术
- leetcode.array--73. Set Matrix Zeroes
- Window下让JAR在后台运行的方法
- 微信网页授权
- droidcon 北京2017安卓技术大会学生票
- 理解向量vector的一些实现细节
- CCF 201709-4 通信网络
- python3 pygame学习(1):display的使用
- P1282 多米诺骨牌