github.com/gogf/gf@v1.16.9/.example/os/gmlock/1.lock&unlock.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  // 内存锁基本使用
    12  func main() {
    13  	var (
    14  		key = "lock"
    15  		wg  = sync.WaitGroup{}
    16  	)
    17  	for i := 0; i < 10; i++ {
    18  		wg.Add(1)
    19  		go func(i int) {
    20  			gmlock.Lock(key)
    21  			glog.Println(i)
    22  			time.Sleep(time.Second)
    23  			gmlock.Unlock(key)
    24  			wg.Done()
    25  		}(i)
    26  	}
    27  	wg.Wait()
    28  }