不管我们在系统设计还是编码开发的过程中,程序猿们在相互技术博弈的过程中经常会谈起“阻塞”“非阻塞”“同步”“异步”这些专业名词,那么它们到底有什么区别?你是不是都理解搞懂了呢?接下来我们对“阻塞”“非阻塞”与“同步”“异步”分别来介绍讲解。
===========================================================
“阻塞”“非阻塞”关注的是程序在等待调用结果,阻塞调用是指调用结果返回之前,当前进程会被挂起,只有在得到结果之后才会返回,非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前进程。
举个栗子:
你打电话问书店老板有没有《分布式系统》这本书,你如果是阻塞式调用,你会一直把自己“挂起”,直到得到这本书有没有的结果,如果是非阻塞式调用,你不管老板有没有告诉你,你自己先一边去玩了,当然你也要偶尔过几分钟询问一下老板有没有返回结果。