基本概念解析
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给他某样东西。(根据我们的注册信息)

841

被折叠的 条评论
为什么被折叠?



