初级会员
  • 第 79022 位会员
  • wuxq
  • wuxq
  • 2023-09-19 12:47:38
  • Offline
  • 19 95

最近发布的主题

    暂无

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 评论了主题 sync包once小问题
    如果是多goroutine 情况下, o.done 和 atomic.LoadUint32(&o.done) 区别: 1、o.done的读取在执行上可能需要好几次 cpu 指令操作,这几次 cpu 指令执行中,可能有别的 goroutine 在修改这个 done 的值,导致你读取到的可能是一个不确定的值 2、用 atomic 这种原子操作,cpu 指令在执行中会保证别的goroutine不去修改这个值,所以读取到的是一个确定的值; 建议看一下 go 的内存模型: https://go.dev/ref/mem