Files
gf/.example/os/gmutex/gmutex_basic.go

30 lines
456 B
Go

package main
import (
"time"
"github.com/gogf/gf/os/glog"
"github.com/gogf/gf/os/gmutex"
)
func main() {
mu := gmutex.New()
for i := 0; i < 10; i++ {
go func(n int) {
mu.Lock()
defer mu.Unlock()
glog.Println("Lock:", n)
time.Sleep(time.Second)
}(i)
}
for i := 0; i < 10; i++ {
go func(n int) {
mu.RLock()
defer mu.RUnlock()
glog.Println("RLock:", n)
time.Sleep(time.Second)
}(i)
}
time.Sleep(11 * time.Second)
}