package main // go 攜程共享 數據 // 加鎖解鎖操做 // 同步鎖 import ( "sync" "fmt" ) func computed (data *int, lock *sync.Mutex){ lock.Lock() // 加鎖霸佔數據 *data++ lock.Unlock() // 解鎖讓出數據 } func main() { var data int = 0 lock :=&sync.Mutex{} for i:=0;i<10;i++ { // 啓動10個攜程 go computed(&data,lock) } for { lock.Lock() c:=data lock.Unlock() if c >= 10 { fmt.Println(data) break } } }