Java的IO演进例实以及使用JDK自带的BIO编写BioServer服务端以及BioClient客户端分析通信优缺点示例

本文介绍了Java的I/O演进历史,包括BIO、NIO和AIO。通过实例展示了如何使用BIO编写一个简单的服务器和客户端,每个请求都在单独的线程中处理。同时,分析了BIO在高并发场景下性能弱的原因,指出其模型简单但可能导致大量线程上下文切换的问题。文章以Tomcat早期版本使用BIO作为例子,并提出了改进方案,如使用线程池和等待队列来缓解问题。
摘要由CSDN通过智能技术生成

Java的I/O演进历史

1.jdk1.4之前使用同步阻塞,也就是BIO。像0几年QQ,那么大并发量,java开发的话是不可能做到高并发的,那时采用C或者C++, 因为可以直接操作系统提供的异步IO,AIO

2.jdk1.4推出NIO,支持非阻塞IO,jdk1.7升级,推出NIO2.0,提供AIO的功能,支持文件和网络套接字的异步IO

使用jdk自带的Bio编写一个同一时间服务

一个客户端请求过来服务返回对应的时间戳,每个请求都分一个线程

Step1:新建java项目

在这里插入图片描述

选取模板
在这里插入图片描述

Step2:创建Server服务端
public class BioServer {

    //定义服务端端口号
    private static final int PORT = 8080;

    public static void main(String[] args) throws IOException {

        //建立Socket连接
        ServerSocket server = null;
        try {
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值