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  }