扫码阅读
手机扫码阅读
Java BIO实现一个简易的多客户端聊天
136 2024-07-18
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
文章来源:
springboot葵花宝典
扫码关注公众号
1. Java BIO基本介绍
Java BIO是Java中传统的I/O编程模型,其相关类和接口在java.io包中。BIO代表同步阻塞I/O,其工作模式是每个连接请求对应一个线程,线程池机制可以用来优化多客户端连接的资源开销。
2. Java BIO工作机制
服务端监听端口,等待客户端Socket连接,并为每个连接创建一个线程进行通信。
3. 传统BIO编程实例回顾
传统BIO模型中,服务端和客户端基于同步阻塞方式通信,服务端使用ServerSocket监听端口,客户端使用Socket发起连接。服务端为每个连接创建新Socket进行通信。这种模型在并发场景下会导致资源消耗过高,无法支持高并发。
4. BIO模式下多发和多收消息
BIO可以实现客户端反复发送消息和服务端反复接收消息,但服务端只能处理一个客户端的请求,其他客户端需等待当前请求完成后才能通信。
5. BIO模式下接收多个客户端
服务端通过为每个客户端请求创建新的线程来处理多个客户端连接。但这种方式会导致线程竞争和上下文切换的开销,以及大量线程占用系统资源,影响性能。
6. 伪异步I/O编程
伪异步I/O通过线程池和任务队列来处理客户端的Socket连接。服务器将接收到的客户端Socket封装成任务交给线程池处理,缓解了一对一线程模型的资源消耗问题。但底层仍然是同步阻塞的,所以当线程池中线程都忙时,新的请求可能会被拒绝。
想要了解更多内容?
文章来源:
springboot葵花宝典
扫码关注公众号
springboot葵花宝典的其他文章
Spring Boot与HttpClient:轻松实现GET和POST请求
**HttpClient** 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议
自从学会根据项目生成代码,每天摸鱼半天,牛皮了!!
自从学会根据项目生成代码,每天摸鱼半天,牛皮了!!
SpringSecurity-OAuth2万文详解
SpringSecurity-OAuth2万文详解Oauth2.0是目前流行的授权机制,用于授权第三方应用,
Vue前后端CURD--实现Vue路由
昨天已经给大家介绍了Vue+SpringBoot实现前后端分离,今天根据之前项目,实现Vue前端路由
Web-9-从Filter到Listener:揭秘Java开发中的神奇力量
Filter和Listener是Java Web开发两个组件。Filter用于在请求被处理前后对请求和响应进行预处理和后处理,如身份验证、日志记录等;Listener用于监听Web应用程序的生命周期、会话和上下文的变化,并执行相应的逻辑
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线