输入输出系统
socket编程的三种通信模型,BIO,NIO,AIO
BIO(Blocking I/O)同步阻塞、 NIO(New I/O)同步非阻塞、AIO (Asynchronous I/O)异步非阻塞。
阻塞和非阻塞强调的是程序在等待调用结果时的状态。
同步和异步强调的是消息通信机制。
同步静水壶,异步响水壶,阻塞等水开,非阻塞看电视。
1 老张把水壶放到火上,立等水开。(同步阻塞)
2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)
3 老张把响水壶放到火上,立等水开。(异步阻塞)
4 老张把响水壶放到火上,去客厅看电视,水壶响之前不再去看它了,响了再去拿壶。(异步非阻塞)
同步: 同步就是发起一个调用后,被调用者未处理完请求之前,调用不返回。
异步: 异步就是发起一个调用后,立刻得到被调用者的回应表示已接收到请求,但是被调用者并没有返回结果,此时我们可以处理其他的请求,被调用者通常依靠事件,回调等机制来通知调用者其返回结果。
阻塞: 阻塞就是发起一个请求,调用者一直等待请求结果返回,也就是当前线程会被挂起,无法从事其他任务,只有当条件就绪才能继续。
非阻塞: 非阻塞就是发起一个请求,调用者不用一直等着结果返回,可以先去干其他事情。

浙公网安备 33010602011771号