简单理解:
阻塞函数就是:程序一直停在此函数处,等待后续操作,有相关操作之后程序才能继续执行,而非阻塞函数是:程序运行在此不会中断,继续向下执行,当此处有操作时,继续此条件的后续操作
如c++中:
kbhit()在执行时,检测是否有按键按下,有按下返回非0值,没有按下则返回0,是非阻塞函数;
getch()在执行时, 检测按下什么键, 如果不按键该函数不返回,也就不进行下一步操作,是阻塞函数。
其他解释:
对于异步程序和非阻塞I/O,记得在知乎上看到过一个非常好的举例:你给图书馆打电话查书,图书馆的管理员会有两种反应,第一种:“麻烦等一下,不用挂电话,我查一下”;第二种:“知道了,等我查到了我给您回电话”。这里面的区别,一个在你,一个在电话线路。第一种情况下,你不能去干别的,只能老老实实的在电话前面等着,而且,别人在这段时间里没法给你打电话了。第二种情况就无所谓了,你可以去high,去耍,去上厕所,其他的朋友给你打电话你也接的到。第一种情况就是同步的、阻塞的,第二种就是异步的、非阻塞的