bio: blocking IO
nio: Non-blocking IO Reactor(反应)模式,事件驱动
aio: Asynchronous Input/Output proactor模式,jdk7
阻塞与非阻塞,公交车例子:
1. 司机过程中定时询问每个乘客是否到达目的地,若有人说到了,那么司机停车,乘客下车。 ( 类似阻塞式 )
2. 每个人告诉售票员自己的目的地,然后睡觉,司机只和售票员交互,到了某个点由售票员通知乘客下车。 ( 类似非阻塞 )
bio:
所能支撑的连接数是有限的,需限制创建线程数量。一连接一线程:accept获取socket后(不一定是真实请求),将socket放入一个线程处理。
nio:
Selector
非阻塞 IO 的核心类,它能检测一个或多个通道 (channel) 上的事件,并将事件分发出去。
使用一个 select 线程就能监听多个通道上的事件(Set<SelectionKey> keys=selectionKey.selectedKeys()),并基于事件驱动触发相应的响应。而不需要为每个channel去分配一个线程。
SelectionKey
包含了事件的状态信息(selectionKey.isConnectable())和事件对应的通道的绑定。(selectionKey.channel())
ByteBuffer
ByteBuffer buffer = ByteBuffer.allocate(1024);
channel
channel.read(buffer) channel.write(buffer)
java nio简介:http://alicsd.iteye.com/blog/834447
相关推荐
bio nio aio demo下载,可直接运行main方法。了解 bio nio aio基础用法
基于java的BIO、NIO、AIO通讯模型代码实现
《Socket 之 BIO、NIO、Netty 简单实现》博客附件。 博客地址:https://blog.csdn.net/Supreme_Sir/article/details/112725728
几个用java写的小程序,实现了bio和nio
java的bio nio aio 几种io的详细解释
其实NIO这类代码都有一些比较统一的写法,因此将BIO,NIO,AIO的实现代码貼出来进行分享,有需要可以下载,直接执行对应的SERVER和CLIENT端的main函数即可
一站式学习Java网络编程 全面理解BIO:NIO:AIO1
netty案例,netty4.1基础入门篇零《初入JavaIO之门BIO、NIO、AIO实战练习》 ...
手写BIO 线程池 NIO 的maven quickstart项目 csdn博客地址:https://blog.csdn.net/qq_36963950/article/details/106462191
对java io总结时编写的测试代码,包括BIO,NIO,AIO的实现,Java io操作是编程人员经常使用到的,以前只是使用没有对这三种IO做系统的了解,本文将对这三种IO作详细的介绍并附有测试完整代码
BIO,NIO,AIO,Netty面试题
java 网络通信 aio bio nio 例子 参考以下网址 https://blog.csdn.net/anxpp/article/details/51512200
详细介绍NIO以及和BIO的对比,原有的 IO 是面向流的、阻塞的,NIO 则是面向块的、非阻塞的。
BIO、NIO、AIO
【Java IO】从NIO到Reactor三种模式 博客地址:https://blog.csdn.net/qq_36963950/article/details/107998164
BIO,NIO,AIO,Netty面试题
用Java代码来告诉您什么是BIO, 什么是NIO, 什么是AIO
nettystudy:aio bio nio netty
本人在学习netty编程时所做的记录,源码是BIO和NIO两种模型的编码
java bio nio aio socket