github.com/gogf/gf@v1.16.9/.example/os/gmlock/2.trylock.go (about) 1 package main 2 3 import ( 4 "sync" 5 "time" 6 7 "github.com/gogf/gf/os/glog" 8 "github.com/gogf/gf/os/gmlock" 9 ) 10 11 // 内存锁 - TryLock 12 func main() { 13 key := "lock" 14 wg := sync.WaitGroup{} 15 for i := 0; i < 10; i++ { 16 wg.Add(1) 17 go func(i int) { 18 if gmlock.TryLock(key) { 19 glog.Println(i) 20 time.Sleep(time.Second) 21 gmlock.Unlock(key) 22 } else { 23 glog.Println(false) 24 } 25 wg.Done() 26 }(i) 27 } 28 wg.Wait() 29 }