Closed utterances-bot closed 2 years ago
楼主你好,请教一下,cas机制不是可以实现原子操作吗?为什么用cas实现就是错误的呢?cas应该也是利用了锁机制吧?你给出的解释我没看懂,能否再详细解释说明一下呢? 十分感谢
楼主你好,请教一下,cas机制不是可以实现原子操作吗?为什么用cas实现就是错误的呢?cas应该也是利用了锁机制吧?你给出的解释我没看懂,能否再详细解释说明一下呢? 十分感谢
cas应该也是利用了锁机制吧? 我们一般说的锁是指的 mutex 的互斥锁或者是读写锁,cas 虽然底层是调用 cpu 的 lock 指令实现的,但是相比来说,就轻量了很多,不是一个量级的
为什么用cas实现就是错误的呢? 不是说用 cas 实现就是错误的,这里指的是如果只是简单的 cas 判断的话,就没有办法保证 once 中的方法 fn 只执行一次了,在并发的情况下可能会被执行多次
感谢回复,了解了
Go并发编程(八) 深入理解 sync.Once - Mohuishou
mohuishou 的 技术博客, 关注云原生, Go, K8s, Docker, 微服务等技术
https://lailin.xyz/post/go-training-week3-once.html