阻塞与非阻塞 同步与异步

同步与异步

我理解同步与异步是指被调用者一端的,
同步与异步在意的是消息通信机制,
例如程序调用了一个方法,同步与异步指的是该方法会以怎么样的形式进行返回,
同步:就是在该方法没有运行出结果前都不会返回,但一返回就有结果;
异步:就是在该方法运行后就会返回,但是没有返回结果,会通过回调的机制返回运行结果;
例子:
若你在网上买了一个商品.但是出现了售后问题,你给客服发了消息询问处理结果,若是同步模式,客服和你说他去询问一下售后工程师处理结果,然后你就一直等啊等,直到他们讨论出结果告知你才算结束;而若是异步模式,客服和你说他去询问一下售后工程师处理结果,有了结果再给你回电话,然后此次通话就到此结束,第二天早上他给你打电话告知结果.

阻塞与非阻塞

我理解阻塞与非阻塞是在调用者一端的,
例如程序调用了一个方法,阻塞与非阻塞指的是当前程序在等待调用结果时的状态,
若一定要等到返回调用结果该线程才会返回,等于将线程挂起,这即是阻塞;
若调用不会立刻得到结果,该次调用也不会阻碍线程的运行,即是非阻塞;
例子:
若你在网上买了一个商品.但是出现了售后问题,你给客服发了消息询问处理结果,若你是阻塞式的,不管客服有没有联系到售后能不能给你结果,你都会一直等待;而若你是非阻塞的,当你询问客服后,不管她有没有立刻回复,你就先去忙自己的事情,但是也会偶尔回来查看结果.

阅读 90

推荐阅读