golang Happens-Before 原则

概念&定义:

在 Go 中,如果一个操作 A happens-before 操作 B,则意味着:

  1. A 的结果对于 B 是可见的。
  2. B 的执行可以依赖于 A 的执行结果。

Happens-Before 规则:

1)Goroutine启动: go语句happens-before函数的第一个语句。

2)管道: 对通道的发送操作 happens-before 对该通道的接收操作。

3)互斥锁:   解锁 (Unlock) 操作 happens-before 其他 goroutine 的加锁 (Lock) 操作。

5)waitgroup:   sync.WaitGroupDone方法happens-before Wait方法。

6)defer: defer语句happens-before函数返回。

7)原子变量/原子操作:原子读写操作保证可见性。

posted @   fchy822  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示