首先,不要强迫,概念与程序对标
拿普通壶与响水壶举例:
普通壶在程序里就是一个被调用了,一直在执行但就是不返回的函数;
而在这个例子里,人还干别的事,相当于程序里可以继续向下执行;这种情况还称为同步非阻塞
概念里可以有,但在程序里,这是不成立的
程序中,调用一个函数后有两种情况:要么等待返回,要么继续向下执行
等待返回与概念中的同步/非堵塞对应
程序继续向下执行,还可以分为两种情况,被调函数是否还被cpu执行,
如果被cpu执行,那么就与异步对应
如果没有被cpu执行,就与非阻塞对应
所以,其实问题就出在,同步与非阻塞的概念在程序中重合了,即两个概念在程序中指的是一回事
所以把概念和程序分开讲;或者就对应起来,把两个概念对应到一种程序情况中
而同步/异步,堵塞/非阻塞的概念是什么呢?
同步/异步:被调用者是否返回消息,只与被调用者有关
堵塞/非阻塞:程序在等待调用结果时的状态,只与调用者有关
这样,水壶问题就能自圆其说了
原文:https://www.cnblogs.com/justaman/p/11479008.html