时间与并发

并发的本质是时间问题。同步就是force一个时间上的操作顺序。临界区相当于用锁实现的原子性操作。

在分布式系统上,Total order是可能顺序世界的一个实例,partial order是加入因果关系后的限制。

可见点、生效点、强制点、barrier都是为了规整并发操作的时间顺序。规整性的程度就是区别。

通信原语、同步原语本质上是将两个局部的子系统里的时间参考系纳入到上层的时间参考系中。

多核CPU是一个分布式系统,内存模型就是一个例子。

事务也算是一个并发系统。隔离性的体现。

由于跟时间有关,并发的Bug也很暗复现。

语言的内存模型是同样的并发,只不过是在比较高的层次上规定了下面的层次必须保证什么。实际上就相当于告诉编译器做一些额外的工作,而编译器又会插入一些cpu汇编语言到执行流里面。

但是多线程的话,就会出问题,直接导致当前线程可能读到的并不是该变量的最新值,也就是没有保持内存和 CPU 寄存器的一致性。你看,这就是因为时间有延迟。

再看原子性,其实就是打包了一些时间上分开的操作。

再看常常迷糊的最终一致性或者cache的立即可见性,就是有时间的latency。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值