起因 嘛,又到了校招的季节。群里孩子们每天都在开心的讨论面试题(说的就和我不是一样),感觉NIO,AIO算是热点问题了,这里整理一发。以及,wp写不了markdown好痛苦啊,是不是该考虑换个博客了….. 前言 I/O 这个词怎么也会很熟悉,UNIX中把所有I/O操作都模型化为文件,就理解成文件的 读写即可 UNIX中的体现 其实NIO , BIO , AIO这种称呼貌似都是Java带起来的 最开始,read / write在一个通道中执行,程序运行到此处阻塞,等待I/O操作完成才能继续,当然可以用多线程/进程解决,然而不够优雅。 于是I/O多路复用技术被提出。简单的说,可以让一个线程管理多个I/O流。 select实现: 第一个实现,然而有一些蛋疼的问题(诸如不是线程安全,链接数限制什么的) poll实现: 改掉了select的一些蛋疼,