同步、异步、阻塞、非阻塞

前言

在学习I/O模型时,往往需要先了解这几种基础概念。

特点

同步、异步

消息通知机制。

阻塞和非阻塞

程序(线程)等待消息通知时的状态。

单个举例

假设,因为我很专注,所以只有我在bug改好了之后才会回复。

同步

早上领导一到公司就问我,“bug改好了吗?bug改好了吗?bug改好了吗?bug······”,不停地问,问到我回复为止(或者说 早上领导一到公司就问我,“bug改好了吗?”,一直等着我给他回复)。

异步

早上领导一到公司就告诉我,“bug改好了,记得发邮件告诉我!”。

阻塞

早上领导一到公司就等着我把bug改好,等着的时候什么也不干。

非阻塞

早上领导一到公司先看我有没有把bug改好,再去看看HR小姐姐和男朋友有没有分手,再回来看我有没有把bug改好,再去看财务小姐姐有没有和男朋友分手,再来看我有没有把bug改好,再 ······。

组合举例

假设,因为我很专注,所以只有我在bug改好了之后才会回复。

同步阻塞

早上领导一到公司就问我,“bug改好了吗?”,在我没有回复他之前,他啥也不干。

同步非阻塞

早上领导一到公司就问我,“bug改好了吗?”,见我没有回复他,他就去问HR小姐姐“什么时候和男朋友分手啊?”,没有等到回复,又过来问我“bug改好了吗?”,看我没有回复他,就去问财务小姐姐“什么时候和男朋友分手啊?”,没有等到回复,再过来问我······。

异步阻塞

早上领导一到公司就告诉我,“bug改好了,记得发邮件告诉我!”,然后就一直等我的邮件,啥也不干。

异步非阻塞

早上领导一到公司就告诉我,“bug改好了,记得发邮件告诉我!”,再去告诉HR小姐姐“和男朋友分手了,记得发邮件告诉我!”,又去告诉财务小姐姐“和男朋友分手了,记得发邮件告诉我!”

希望我的领导不要看到

举例纯属虚构,如有雷同,那就是真的!

你可能感兴趣的:(网络编程,异步,阻塞,非阻塞,同步)