异步、同步、阻塞、非阻塞
【https://blog.csdn.net/qq_30169511/article/details/78206179】
可以分为两组:异步同步、阻塞非阻塞。这两组概念都是相对性的概念。
异步同步是相对于整个的过程(或者对象)而言,阻塞非阻塞是相对于其中的一个进程而言。
同步:我调用一个功能,如果没有获取到结果之前,我死等;【php代码运行,从上而下】
异步:调用一个功能,不需要知道结果,可以去干其他的事情,有结果了告诉我就行。
这里,好比:同步:alert一个结果,不关闭,就不能去做其他的事情;异步:下载个东西,我可以把下载扔在那里,我去干其他的事情,下载结束了,告诉我下载结束就可以。
阻塞:开始某个进程之后(程序开始运行),需要等待运行结果,如果没有结果出来,当前线程的会被挂起(线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行)。函数只有在得到结果之后才会返回。
【有人也许会把阻塞调用和同步调用等同起来,实际上他是不同的。对于同步调用来说,很多时候当前线程还是激活的,只是从逻辑上当前函数没有返回而已。 例如,我们在socket中调用recv函数,如果缓冲区中没有数据,这个函数就会一直等待,直到有数据才返回。而此时,当前线程还会继续处理各种各样的消息。】
非阻塞:非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。
啊手动阀第三方