1.到底什么是同步&异步&阻塞&非阻塞?
同步异步关注的是消息通信机制
例子:
一个人要烧开一壶水,有很多种方式
这个人开火烧水,还得这个人本人监督着直到水烧开,这是同步 (等待完还是由你来处理,同个人)
这个人把水放在水上烧,水烧开后不一定由这个人处理,这叫**异步 **(水最终不一定是你来处理,一般异步的都是非阻塞的,不同人)
阻塞非阻塞关注的是等待消息时的状态
例子:
这个人在等水烧开的过程中什么事情都不干,就等着水烧开,这叫阻塞
如果这个人还去做其他的事情,这叫做非阻塞
同步异步,阻塞非阻塞的不同在于他们对信息的关注点不同
同步阻塞
一个人烧水,在水烧开之前,他就一直在旁边等着,什么时候水烧开了他才进行下一步的操作,这就是同步阻塞
一直等待到水烧开 不做其他事情
同步非阻塞
一个人烧水,在水放到火上后,他就去干别的事情了,但是水开之后还是由这个人处理,这就是同步非阻塞
去做其他事情,最终还是他回来关火 同个人(就是水烧开了)
异步阻塞(这种请求很少见)
一个人烧水,给烧水的壶设置了一个铃,水开铃就会响,然后就去做别的事情了。水开之后的事情不一定是他处理了。他也可以在旁边等着水烧开。这种情况非常少见。(可以忽略)
异步非阻塞
一个人烧水,开火之后设置好水开的处理程序,不由他自己处理。
异步非阻塞是经常用到的。
去做其他事情,水开了它也不用他去关(不同个人)