On Friday, July 7, 2017 at 3:26:24 AM UTC+8, Lars Seipel wrote: > > On Thu, Jul 06, 2017 at 12:19:05PM -0700, T L wrote: > > > > package main > > > > import "fmt" > > import "sync/atomic" > > > > func main() { > > var x int32 > > atomic.AddInt32(&x, 1) > > fmt.Println(atomic.LoadInt32(&x)) > > } > > Sure. > > > Within a single goroutine, the happens-before order is the order > > expressed by the program. > - https://golang.org/ref/mem
Thanks. Then how about this? package main import "fmt" import "sync/atomic" func main() { var x, y int32 go func() { atomic.AddInt32(&x, 1) atomic.AddInt32(&y, 1) }() if atomic.LoadInt32(&y) == 1 { fmt.Println("x =", atomic.LoadInt32(&x)) // always 1 if it is printed? } if atomic.LoadInt32(&x) == 0 { fmt.Println("y =", atomic.LoadInt32(&y)) // always 0 if it is printed? } } -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.