mirror of
https://gitee.com/johng/gf
synced 2026-06-29 02:26:29 +08:00
30 lines
456 B
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)
|
|
}
|