在使用传统的 I/O 操作时,比如 InputStream/OutputStream ,通常是将数据暂存到 byte 或者 char 中,亦或者从 byte 或者 char 中来获取数据,但是在 Java 语言中对 array 数组自身提供的可操作的 API 非常少,常用的操作仅仅是 length 属性和下标,如果相对数组中的数据进行更高级的操作,需要自己写代码来实现,处理方式比较原始。
关于IO会涉及到阻塞、非阻塞、多路复用、同步、异步、BIO、NIO、AIO等几个知识点。IO多路复用中文比较让人头大,IO多路复用的原文叫 I/O multiplexing,这里的 multiplexing 指的其实是在单个线程通过记录跟踪每一个Sock的状态来同时管理多个I/O流. 发明它的目的是尽量多的提高服务器的吞吐能力。
大家在Java学习的时候会遇到各种各样的问题,要么是写不出代码,要么是看不懂需求,要么坚持不下去。今天黑马程序员以多年教学经验给大家带来Java学习的方法,帮助大家夯实Java基础,顺利过渡到Java进阶,并且了解市场上Java的招聘需求。
同步、异步是相对的,在请求或执⾏过程中,如果会阻塞等待,就是同步操作,反之就是异步操作。在出站流程开始的时候,通过调⽤ ctx.writeAndFlush,Bytebuf 缓冲区开始进⼊出站处理的 pipeline 流⽔线 。