Netty开篇——BIO章(二)
发布时间:2024年01月12日
Java BIO 基本介绍
- 属于传统的 java io编程,内容见java.io包中
- BIO(blocking I/O) : 同步阻塞,服务器实现模式为个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制改善(实现多个客户连接服务器)。
Java BIO 工作机制
对 BIO 编程流程的梳理
- 服务器端启动一个 ServerSocket
- 客户端启动 Socket对服务器进行通信,默认情况下服务器端需要对每个客户建立一个线程与之通讯
- 客户端发出请求后,先咨询服务器是否有线程响应,如果没有则会等待,或者被拒绝
- 如果有响应,客户端线程会等待请求结束后,在继续执行
Java BIO 应用实例(选修)
实例说明:
- 使用 BIO 模型编写一个服务器端,监听 6666 端口,当有客户端连接时,就启动一个线程与之通讯。
- 要求使用线程池机制改善,可以连接多个客户端
- 服务器端可以接收客户端发送的数据(telnet 方式即可]。
Java BIO问题分析
- 每个请求都需要创建独立的线程与对应的客户端进行读写操作,当并发数较大时,需要创建大量线程来处理连接,系统资源占用较大。
- 连接建立后,如果当前线程暂时没有数据可读,则线程就阻塞在 Read 操作上,造成线程资源浪费
- 他交互的时候有一个主线程,每次来了新连接会创建一个子线程去负责处理
文章来源:https://blog.csdn.net/weixin_39384775/article/details/135545502
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!