三种进展担保


这三者的担保程度是逐渐增强的,原文参考 1024cores

obstruction free

只有在没有其他线程竞争的情况下,一个线程才能取得进展。

  • 两个线程可以互相阻碍对方的进展,形成一个活锁
  • 被阻塞/中断/终止的线程不能阻碍其他线程的进展
  • obstruction free的算法可以比lock free算法更快

lock free

不论在何种情况下,整个系统会取得进展(总有一个线程有进展,但不确定是谁)。但是并不担保每个单独的线程取得进展。

  • 单独的线程可以遭遇饥饿
  • 被阻塞/中断/终止的线程不能阻碍其他线程的进展
  • 一般使用CAS之类的

wait free

无论外部因素如何(线程竞争、其他线程被阻塞),每个线程都会取得进展。每个操作都会在有限步数内执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值