6、多线程编程中的互斥与并发对象详解

多线程互斥与并发对象解析

多线程编程中的互斥与并发对象详解

互斥相关内容

在多线程编程中,互斥是一个关键概念,它确保同一时间只有一个线程能够访问共享资源,避免数据竞争和不一致的问题。

达到覆盖状态的过程

为了更好地理解互斥,我们来看一个达到覆盖状态的过程:
1. 起始于覆盖状态 :从LB的覆盖状态开始。
2. 运行系统至特定时刻 :运行系统,直到A即将写入LA。如果不存在这样的情况,就让A进入临界区,此时B可以覆盖其值,但LB中可能会留下A的痕迹。
3. 再次运行B :再次运行B,它会擦除LB中的痕迹,然后让其进入临界区并返回。如果重复这个模式两次以上,B必须回到与之前相同位置(图中为LB)的覆盖状态。

在初始覆盖状态下,LB的两个位置都具有空值⊥。

相关算法的起源

许多互斥算法都有其独特的起源:
- “→”形式主义由Leslie Lamport提出。
- 前三个算法由Gary Peterson于1981年在一篇两页的论文中发表。
- 这里介绍的面包店锁是Leslie Lamport原始面包店算法的简化版本。
- 顺序时间戳算法由Amos Israeli和Ming Li发明,他们还提出了有界时间戳系统的概念。
- Danny Dolev和Nir Shavit发明了第一个有界并发时间戳系统。
- 其他有界时间戳方案包括Sibsankar Haldar和Paul Vitányi,以及Cynthia Dwork和Orli Waarts提出的方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值