
网络编程
文章平均质量分 75
包括常见的IO模型,BIO、NIO、AIO网络模型等介绍
静静子♡
学java的小白一枚,多看多学多写
展开
-
BIO、NIO、AIO的比较
目录BIO、NIO、AIO的比较1. 释义BIO:同步阻塞IO模型NIO:同步非阻塞IO模型AIO:异步非阻塞IO模型2. 应用场景BIO、NIO、AIO的比较1. 释义BIO:同步阻塞IO模型在JDK1.4之前网络通信使用的都是BIO模型,BIO模型中accept()、read()、write()、Connection()都会阻塞,BIO要同时支持处理多个客户端的连接,就必须使用多线程,即每次accept阻塞等待客户端连接对象socket,为每一个socke原创 2021-11-26 17:18:40 · 619 阅读 · 0 评论 -
网络编程 NIO
NIO的介绍NIO(New IO)同步非阻塞IO模型,采用了事件驱动的思想来实现一个复用器,来解决大并发的问题。读、写、可连接、可接受等操作在BIO中是阻塞处理,在NIO中,将其设置为非阻塞,并将这些操作视为事件,当关注某个事件时,将其注册到复用器Selector(本质上使用底层操作系统提供的IO复用器:select、poll,epoll)。由系统来监听事件是否准备就绪, 当socket有读或者可写操作时,系统会通知相应的用户程序来处理,将流读取到缓冲区或者写入到系统中。一个复用器上是可以注册多原创 2021-11-26 17:15:02 · 561 阅读 · 1 评论 -
网络编程 AIO
AIO模型介绍AIO(Asynchronous I/O) 异步非阻塞模型, 在java jdk.17版本开始支持AIO,AIO模型需要操作系统的支持。AIO最大的特性是异步能力,对socket和I/O起作用。与NIO模型不同,一读写操作为例,只需直接调用read和write的API即可。对于读操作:当有流可读时,系统会将可读的流传入到read方法的缓冲区,并通知应用程序。读写都是异步的,完成之后会主动调用回调函数。在JDK 1.7中,aio也称为nio.2.0,主要在java.nio.原创 2021-11-25 21:30:00 · 940 阅读 · 0 评论 -
Java-IO模型中的BIO模型
java中的IO模型之BIO网络编程模型介绍,服务端、客户端的操作原创 2021-11-20 20:15:00 · 183 阅读 · 0 评论 -
网络编程 | Socket编程
socket编程网络编程:服务端需要等待客户端连接,服务需要先于客户端进行启动;网络编程通信必须需要IP和端口。服务端流程:服务端需要先启动ServerSocket实例 绑定端口 等待客户端的连接 进行读写操作 关闭资源服务端(Server.java):public class Server { public static void main(String[] args) { ServerSocket serverSocket = null...原创 2021-11-19 21:30:00 · 1039 阅读 · 0 评论 -
IO模型 | 常见的五种IO模型介绍
常见IO模型对于一次 IO 访问,它会经历两个阶段:等待数据准备就绪 (Waiting for the data to be ready);将数据从内核拷贝到进程中 (Copying the data from the kernel to the process)。举例来说:读函数:分为等待系统可读和真正的读。写函数:分为等待网卡可以写和真正的写。说明:等待就绪的阻塞是不使用 CPU 的,是在“空等”。而真正的读写操作的阻塞是使用 CPU 的,真正在“干活”,而且这个过程非常快,属于原创 2021-11-19 21:15:00 · 4309 阅读 · 2 评论 -
IO模型 | IO读写原理、同步/异步、阻塞/非阻塞介绍
目录1. Java IO读写原理1.1 内核缓冲区和进程缓冲区1.2 Java 读写IO的底层流程2. 同步/异步、阻塞/非阻塞介绍2.1 同步(Synchronization) / 异步(Asynchronization)2.2 阻塞(Block) / 非租塞(NonBlock)1. Java IO读写原理内存是存储和CPU打交道的数据,在Linux上内存主要分为两部分(内核部分和用户部分)。先强调一个基础知识:read系统调用,并不是把数据直接从物理设备,读数据原创 2021-11-19 11:30:00 · 510 阅读 · 0 评论