原文讲到CAS是举了这么个例子:
func addValue(delta int32) {
for {
v := atomic.LoadInt32(&value)
if atomic.CompareAndSwapInt32(&value, v, (v + delta)) {
break
}
}
}
为何不直接用AddInt32,而是搞个这么费劲到for循环??
原文讲到CAS是举了这么个例子:
func addValue(delta int32) {
for {
v := atomic.LoadInt32(&value)
if atomic.CompareAndSwapInt32(&value, v, (v + delta)) {
break
}
}
}
为何不直接用AddInt32,而是搞个这么费劲到for循环??