tcp值bio示例

2019-04-29  本文已影响0人  屎倒淋头还嚼便

bio:大概是cpu和内存之间交互数据时,cpu读取数据时的方法,是同步阻塞方法。

nio:

aio:大概java1.7中,将aio称为nio2.0,它的读写方法都是异步非阻塞的。api大概在            java.nio.channels包中

一、只使用socket打开的输入流、输出流,不进行包装

处理每一个连接的数据,不一定都新建一个线程来进行处理,也可以用线程池优化

可以把服务端的socket实例,就是下面途中的accept对象,交给线程池处理。

疑问:下面的例子中,服务端从流中读取数据的方法,是同步阻塞方法,一个客户端对应一个输入流,再对应一个线程,这样简单有效,但是开启了太多线程

用线程池,该怎么设计呢?

使用线程池,大概就是池中哪个线程空闲,就用哪个,避免了新建太多线程。但是 inputStream.read(b)是阻塞方法,流中没有数据线程会阻塞,怎么会空闲呢?

大概不能用线程池优化bio,以后百度查一下。

NIO:监听新建连接,和BIO应该一样,但是处理接收、发送数据不一样,

nio会建一个线程池,大概用轮询的方式到缓存区中查找发送来的数据。

废弃 第一张图片中方法的修改

2、优化?保证了一下输入流、输出流

上一篇 下一篇

猜你喜欢

热点阅读