BIO 就是阻塞的IO,
比如在Socket编程中,ServerSocket每次连接到的一个客户端Socket,都要为其分配一条线程单独处理,否则处理该Socket会阻塞当前线程。 所以BIO服务器是一个假异步的服务器
由于每次连接都要一条单独线程,导致并发效率不高。
NIO,非阻塞IO
当NIO连接到一个新的客户端时,一般我们将新的通道注册到Selector中,由Selector去处理通道中的内容,一个Selector可以在一条线程中处理多个客户端Channel,可不必对每个连接新建线程处理。
AIO 真异步
所以BIO的就是阻塞以及被唤醒。
而NIO的不会被阻塞,而是反复询问各个通道里的数据是否准备好直到有通道里的数据是准备好的就处理
网友评论