BIO升级到NIO,有哪些具体操作步骤?

2026-06-09 06:501阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1696个文字,预计阅读时间需要7分钟。

BIO升级到NIO,有哪些具体操作步骤?

同步阻塞IO单线程编程的原始网络编程思路就是服务器用一个while循环不断监听端口号是否有新的套接字连接。如果有,就调用一个同步阻塞IO来处理这个连接。

同步阻塞IO单线程BIO最原始的网络编程思路就是服务器用一个while循环不断监听端口是否有新的套接字连接如果有那么就调用一个处 同步阻塞IO

单线程BIO

最原始的网络编程思路就是服务器用一个while循环不断监听端口是否有新的套接字连接如果有那么就调用一个处理函数处理。

while(true){ socket accept(); handle(socket) }

这种方法的最大问题是无法并发效率太低。如果当前的请求没有处理完那么后面的请求只能被阻塞服务器的吞吐量太低。

多线程BIO

针对上面的问题很自然想到了使用多线程处理IO也就是很经典的connection per thread每一个连接用一个线程处理。

BIO升级到NIO,有哪些具体操作步骤?

while(true){ socket accept(); new thread(socket); }

tomcat服务器的早期版本确实是这样实现的。多线程的方式确实一定程度上极大地提高了服务器的吞吐量因为之前的请求在read阻塞以后不会影响到后续的请求因为他们在不同的线程中。这也是为什么通常会讲“一个线程只能对应一个socket”的原因。

阅读全文

本文共计1696个文字,预计阅读时间需要7分钟。

BIO升级到NIO,有哪些具体操作步骤?

同步阻塞IO单线程编程的原始网络编程思路就是服务器用一个while循环不断监听端口号是否有新的套接字连接。如果有,就调用一个同步阻塞IO来处理这个连接。

同步阻塞IO单线程BIO最原始的网络编程思路就是服务器用一个while循环不断监听端口是否有新的套接字连接如果有那么就调用一个处 同步阻塞IO

单线程BIO

最原始的网络编程思路就是服务器用一个while循环不断监听端口是否有新的套接字连接如果有那么就调用一个处理函数处理。

while(true){ socket accept(); handle(socket) }

这种方法的最大问题是无法并发效率太低。如果当前的请求没有处理完那么后面的请求只能被阻塞服务器的吞吐量太低。

多线程BIO

针对上面的问题很自然想到了使用多线程处理IO也就是很经典的connection per thread每一个连接用一个线程处理。

BIO升级到NIO,有哪些具体操作步骤?

while(true){ socket accept(); new thread(socket); }

tomcat服务器的早期版本确实是这样实现的。多线程的方式确实一定程度上极大地提高了服务器的吞吐量因为之前的请求在read阻塞以后不会影响到后续的请求因为他们在不同的线程中。这也是为什么通常会讲“一个线程只能对应一个socket”的原因。

阅读全文