xxxxxxxxxx
package main
import (
"fmt"
"sync"
"time"
)
func main() {
obj := sync.Map{}
for i := 0; i < 4; i++ {
go func() {
for {
obj.Store("num", i)
}
}()
}
time.Sleep(time.Second * 10)
res, _ := obj.Load("num")
fmt.Println("ops:", res)
}
xxxxxxxxxx
package main
import (
"fmt"
"sync/atomic"
"time"
)
func main() {
var ops uint64 = 0
iters := 4
for i := 0; i < iters; i++ {
go func() {
for {
atomic.AddUint64(&ops, 1)
// return <- uncomment this
}
}()
}
time.Sleep(time.Second * 1)
opsFinal := atomic.LoadUint64(&ops)
fmt.Println("ops:", opsFinal)
}