Java的I/O演进之路 Java I/O:发展历程
Java的I/O演进之路
今天带来的IT技巧小经验Java的I/O演进之路的IT知识,一起跟随小编看看吧!
在Java的软件设计开发中,通信架构不可避免,我们在进行不同系统或者不同进程之间的数据交互,或者在高并发下的通信场景下都需要用到网络通信相关的技术,对于一些经验丰富的程序员来说,Java早期的网络通信架构存在一些缺陷。
其中最令人恼火的是基于性能低下的同步阻塞式的I/O通信(BIO),随着互联网开发下通信性能的高要求,Java在2002年开始支持了非阻塞式的I/O通信技术NIO。
1. I/O 模型基本说明
I/O 模型:就是用什么样的通道或者说是通信模式和架构进行数据的传输和接收,很大程度上决定了程序通信的性能。 Java 共支持 3 种网络编程的/IO 模型:
- BIO
- NIO
- AIO
实际通信需求下,要根据不同的业务场景和性能需求决定选择不同的I/O模型
2. Java BIO
- Java BIO 就是传统的java io 编程,其相关的类和接口在 java.io
- BIO(blocking I/O) :同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制改善(实现多个客户连接服务器)

Java BIO 工作机制
BIO 编程流程的梳理
- 服务器端启动一个ServerSocket,注册端口,调用accpet方法监听客户端的Socket连接。
2.客户端启动 Socket 对服务器进行通信,默认情况下服务器端需要对每个客户 建立一个线程与之通讯

3. Java NIO
- Java NIO(New IO)也有人称之为 java non-blocking IO是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。NIO可以理解为非阻塞IO,传统的IO的read和write只能阻塞执行,线程在读写IO期间不能干其他事情,比如调用socket.read()时,如果服务器一直没有数据传输过来,线程就一直阻塞,而NIO中可以配置socket为非阻塞模式。
- NIO 相关类都被放在java.nio 包及子包下
相关阅读
-
网站需要怎么优化比较好 网站建设流程分享
为大家介绍网站需要怎么优化比较好和网站建设流程分享方面的内容,一起来了解了解吧。 网站优化是一种搜索引擎推广方法,是通过有效的方式获得较好的自然排名,不仅费用较低,而且排
-
数据库主键是什么 数据库中的唯一标识:主键的作用及重要性
如果想了解数据库主键是什么及数据库中的唯一标识方面的内容,具体介绍如下: 数据库主键(Primary Key)是关系型数据库表中的一个特殊字段,它具有以下作用和特点: 唯一性 :主键字段的
-
公司做网络推广哪个网站好 推广平台网站推荐
文章摘要:公司做网络推广哪个网站好和推广平台网站推荐方面的讲解,具体内容如下: 许多企业都如今面临了同一个问题,企业相应做网络推广,可是尝试过一些平台后发现效果还是很差。
-
什么是缓存 策略有哪些?
关于这方面的知识你知道吗?什么是缓存的话题,下面小编为您详细解答 什么是缓存? 缓存就像是一个超快速的存储区域,保存了计算机或手机经常使用的内容的副本,这样可以在不访问较慢


