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

并发控制策略解析
本文介绍了在并发编程中三种主要的线程控制策略:无等待、无锁和阻塞。通过对比这些策略,读者可以了解它们之间的区别及适用场景。文章还深入探讨了无饥饿、无干扰、有界无等待和集居数无等待等概念。

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值