OS笔记(cld买烤鸡)

异步与同步关注的是信息接收方的行为。

所谓同步,就是在调用一个函数后,直到计算获得函数结果,该函数才执行完毕。

比方说cld来到菜市场买烤鸡。烤鸡要现杀现烤,cld需要等烤鸡做好拿走,买烤鸡这件事才算完成。

所谓异步,就是在调用一个函数后,该函数立刻执行完毕,函数结果计算完成后,该函数会主动通知调用者。

比方说cld来到菜市场买烤鸡。烤鸡要现杀现烤,cld说"老板我要赶紧回家陪我男朋友。我给你留个地址,你做好送到我家好吗"。然后cld就回家了。尽管烤鸡还没做好,但cld已经完成了买烤鸡这件事。而烤鸡会由老板稍后送到家里来。



再举两个例子。

函数的异步调用

setTimeout()函数被异步调用了;setTime()函数执行完毕后,才开始执行cb().

函数的同步调用

GetInt()获取用户输入的i后才算执行完毕.

阻塞/非阻塞关注的是信息发送方的状态。

阻塞是指得到结果之前,当前线程会被挂起

比方说cld来到菜市场买烤鸡。在得到烤鸡(无论是否让老板把烤鸡送到家里)之前,cld什么事情都不做,就直到获得烤鸡才做其他事情。(好像不太像cld的性格...)

非阻塞指在得到结果之前,当前线程不会挂起

比方说cld来到菜市场买烤鸡。在得到烤鸡(无论是否让老板把烤鸡送到家里)之前,cld想玩消消乐,于是她打开手机玩消消乐,同时又戴上耳机听音乐。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容