【六星教育-swoole-1911期】swoole基础概念和长连接

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

https://blog.csdn.net/qq_30169511/article/details/78206179

可以分为两组:异步同步、阻塞非阻塞。这两组概念都是相对性的概念。

异步同步是相对于整个的过程(或者对象)而言,阻塞非阻塞是相对于其中的一个进程而言。

 

同步:我调用一个功能,如果没有获取到结果之前,我死等;【php代码运行,从上而下】

异步:调用一个功能,不需要知道结果,可以去干其他的事情,有结果了告诉我就行。

这里,好比:同步:alert一个结果,不关闭,就不能去做其他的事情;异步:下载个东西,我可以把下载扔在那里,我去干其他的事情,下载结束了,告诉我下载结束就可以。

 

阻塞:开始某个进程之后(程序开始运行),需要等待运行结果,如果没有结果出来,当前线程的会被挂起(线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行)。函数只有在得到结果之后才会返回。

【有人也许会把阻塞调用和同步调用等同起来,实际上他是不同的。对于同步调用来说,很多时候当前线程还是激活的,只是从逻辑上当前函数没有返回而已。 例如,我们在socket中调用recv函数,如果缓冲区中没有数据,这个函数就会一直等待,直到有数据才返回。而此时,当前线程还会继续处理各种各样的消息。】

非阻塞:非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。

啊手动阀第三方

猜你喜欢

转载自www.cnblogs.com/muronggongsun/p/12028251.html
今日推荐