码迷,mamicode.com
首页 > 其他好文 > 详细

BIO与NIO

时间:2018-03-10 00:14:29      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:gpo   阻塞   post   复用器   线程   同步   div   表示   nio   

先理解一下操作系统中的几个概念:(一下为个人理解,如有不当请见谅)

同步:用户进程触发IO操作以后,主动去轮询查看IO操作是否就绪,若没有则一直等待

异步:用户进程触发IO操作以后去做别的事情,IO操作完成以后会受到就绪的通知,异步最大的特点就是通知

 

I/O多路复用技术:多路可以理解为多条I/O流,每条I/O流可以用文件描述符来表示,进程/线程触发IO操作以后就会去做别的事情,

当某个IO操作就绪以后,文件描述符就会主动通知线程/进程。

BIO:同步阻塞IO,客户端发情请求时,为每一个请求创建一个线程去处理这些请求,当线程执行过程当中依赖于需要等待的资源时,

线程机会长期处于等待状态,线程数过多操作系统进行线程上下文的切换相对应的花销就大,tomcat中就默认使用BIO来处理请求,

但是tomcat维护了一个线程池,控制线程并发的数量。

NIO:同步非阻塞IO,NIO采用了多路复用器机制,以socket为例,多路复用器不断的轮询各个连接的状态,只有各个连接有流可读或可写时,

应用程序才去处理它,可以用少量的线程去处理大量请求

NIO.2:异步非阻塞,同样以socket为例,多路复用器不会去的轮询各个连接的状态,各个连接有流可读或可写时会主动通知

应用程序,才时候才去处理它,可以用少量的线程去处理大量请求。

BIO与NIO

标签:gpo   阻塞   post   复用器   线程   同步   div   表示   nio   

原文地址:https://www.cnblogs.com/ChenXionghfut/p/8536833.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!