Advertisement

堵塞、非阻塞、同步、异步到底是什么?

阅读量:

阻塞状态发生在程序无法获得所需资源时,并导致其暂停执行。当程序因等待特定操作完成而无法切换至其他任务时,则称该程序在此操作中处于阻塞状态

非阻塞(non-blocking)指的是一个程序在等待某个操作完成的过程中,并未被阻塞而能够执行其他任务,在此操作中则被称为非阻塞(non-blocking)行为。

同步就是在发起一个程序块(简称块)请求时,在尚未获得反馈之前该块不会释放控制权给其他进程或线程。一旦该块反馈结果,则会立即获得返回值。换句话说,就是由发起者主动等待这一特定的程序块完成运行并反馈结果的过程。

非同步则相反,在该操作执行后会立即返回而无返回结果;反之,在操作执行完成后不会立即提供结果;而是由执行者通过状态或回调函数通知该操作的结果。

当我们需要联系小明时 结果他妈妈接通了他的电话 这时他妈妈请求我们来叫他 原本我们应该等待中等待小明的妈妈来接他的电话 这才是同步阻塞函的概念;如果我们在等待的过程中一边看小说 可能就会被视为同步非阻塞的行为;另一种情况 小明妈妈说 '你先挂断了电话 我待会儿再联系你' 这种情况下 如果我们一边等待回电一边看小说 就属于异步阻塞的情形 如果只是单纯地等待而不做其他事情 则被称为异步阻塞;如果在等待回电的过程中还在做其他事情 如看小说 则属于异步非阻塞的情况

参考

[__https://w

全部评论 (0)

还没有任何评论哟~