同步、异步讲的是通讯机制,主要关注::被调用方::的状态
阻塞、非阻塞讲的是调用状态,主要关注的是::调用方::的状态
例如:
我找你办事,你可以现在就干(同步)、也可以一会干(异步),我可以在线等(阻塞),也可以先干其他的活(非阻塞)。
通讯机制
同步
异步
调用状态
阻塞
非阻塞
Java中的I/O
BIO:同步阻塞
NIO:可以同步非阻塞
AIO:异步非阻塞
例子
同步阻塞(你同步,我阻塞)
两个同事面对面聊天
你说一句,我回复一句
同步非阻塞(你同步,我非阻塞)
领导让员工干活
领导是大忙人,把活布置下去就干其他事情去了。
员工开始干活,干完以后等领导有空了再来检查。
异步阻塞(你异步,我阻塞)
员工让领导签字
领导是大忙人,一堆事情,忙完别的事情,再给你签字。
这期间员工一直在等着领导。
异步非阻塞(你异步,我非阻塞)
员工找财务报销
财务有很多事情,忙完别的事情,再处理你的报销。
员工贴完发票以后,不用等,干其它活去,等银行卡的钱到账了就知道报销完成了。
网友评论