并发演进条件------阻塞、无锁、无等待区别

来源:互联网 发布:红楼梦王夫人结局 知乎 编辑:程序博客网 时间:2024/05/24 01:11

阻塞:某一线程由于等待资源致使其阻塞,等待资源释放。有可能是整个系统挂起,所有线程阻塞后饿死。
无锁(lock free):在整个系统中,至少会有一个线程运行,但是依旧会存在线程饿死的情况。
无等待(wait free):每个线程最终都会运行,不会有饿死的情况发生

比较顺序: 无等待》无锁》阻塞

无饥饿:
只要有一个线程在互斥区中,那么一些希望进入互斥区域的线程最终都能够进入互斥区域(即使之前在互斥区中的线程意外停止了)
无干扰:
如果一个方法满足无干扰性质,那么这个方法从任意一点开始它的执行都是隔离的,并且能够在有限步内完成。(无干扰条件保证了所有的线程都有可能被某些线程的突发延迟所阻塞)
有界无等待:
如果一个方法是有界无等待的,那么这个方法保证每次调用都能够在有限,并且有界的步骤内完成。这个界限可能依赖于线程的数量。
集居数无等待:线程的平均开销与并发数无关的函数