编程基础-java-IO
javaIO与系统IO
java的IO能力依赖于操作系统提供的能力,底层依赖系统提供的若干类型的指令,包括对CPU,内存,外设(网络,硬盘,显示器等),各种寄存器,缓存等操作指令;
其中重要的几个逻辑层需要关注: 应用程序层(我们利用jdk的API),jvm层,操作系统层,对整个IO操作的处理
BIO,NIO,AIO的区别
BIO逻辑最简单,一条线程处理一个完整的IO操作,包括从接受客户端的请求开始,然后向操作系统转发请求,等待操作系统返回,最后将结果返回客户端的整个流程;适合简单的,并发小的系统;
NIO 逻辑最复杂,多个线程来协同处理若干个客户端请求;整个请求和返回划分成若干环节,交给不同的线程处理,已达到非阻塞的效果,保证线程资源充分利用起来;主要设计思想是各个环节的线程通过循环判断当前IO阶段是否需要处理;
AIO逻辑相对简单,线程将客户端请求转发到jvm后,jvm底层自动判断是否数据是否准备完成,主动调用IO操作,返回数据给客户端;