NIO:Non-blocking IO(非阻塞)
BIO:Blocking(阻塞)
BIO 是阻塞的,NIO 是非阻塞的。
BIO 的各种流是阻塞的。这意味着,当一个线程调用 read() 或 write() 时,该线程会被阻塞,直到数据被完全读取,或数据被完全写入。在此期间,该线程不能再干其他任何事。
NIO 使我们可以进行非阻塞 IO 操作。比如说,单线程中从通道读取数据到 buffer,同时可以继续做别的事情,当数据读取到 buffer 中后,线程再继续处理数据。写数据也是一样的。另外,非阻塞写也是如此。一个线程请求写入一些数据到某通道,但不需要等待它完全写入,这个线程同时可以去做别的事情。