时钟向量简介

时钟向量简介

本文以论文“FastTrack”中的一张图片为材料,分析时钟向量的使用方法。论文如下:
https://users.soe.ucsc.edu/~cormac/papers/pldi09.pdf
图片如下:
这里写图片描述
C0表示线程0的时钟向量,对应第0列为线程0的时间戳
C1表示线程0的时钟向量,对应第1列为线程1的时间戳
lm表示锁m的时钟向量,对应的每一列为该线程号的时间戳
Wx表示变量x的时钟向量,对应的每一列为该线程号的时间戳
第一行为初始化,或者可以理解为经过某些操作之后达到该状态,此时,0号线程时间戳为4,1号线程时间戳为8,且仅各自对应的时钟向量有记录。
wr(0,x)表示线程0对变量x进行了写操作,Wx记录了线程0对其修改。
rel(0,m)表示线程0释放了锁m,lm记录线程0对其修改,C0对应的时间戳自加1,本文先记录后修改时间戳。
acq(1,m)表示线程1申请锁m,复制其他线程对锁m的操作,即其他线程的时间戳。
wr(1,x)表示线程1对变量x进行了写操作,Wx记录了线程1对其修改。
从文中图片中可以看出<4,8,…>每一分量都不小于<4,0,…>,所以<4,8,…>之后的操作一定在<4,0,…>之后发生,是happen-before的。
除此之外,从某些向量的数值中可以看出,例如<5,0,…>与<0,8,…>相比数值有大有小,所有这两点是可以并发的。允许出现数据竞争等并发缺陷。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值