文档:https://goframe.org/docs/components/os-gmutex#%E5%9F%BA%E5%87...
源码:https://github.com/gogf/gf/blob/master/os/gmutex/gmutex_mutex.go
自己定义了个类型,把官方的Mutex内嵌进来,然后自己再添加了几个实用方法而已。
lock和unlock方法都是官方的Mutex,这文档里面的基准测试为什么说比官方好呢?
自己本机电脑测试,同样的一对lock和unlock,并没有什么区别。
2025-03-31T17:59:47.711+08:00 lock1 done
goos: windows
goarch: amd64
pkg: github.com/gogf/gf/v2/os/gmutex
cpu: 11th Gen Intel(R) Core(TM) i5-11400 @ 2.60GHz
Benchmark_Mutex_LockUnlock-12 19784415 60.89 ns/op
Benchmark_RWMutex_LockUnlock-12 22215721 52.93 ns/op
Benchmark_RWMutex_RLockRUnlock-12 49664350 23.53 ns/op
Benchmark_GMutex_LockUnlock-12 21198753 55.72 ns/op
Benchmark_GMutex_TryLock-12 642426830 1.694 ns/op
Benchmark_GMutex_RLockRUnlock-12 54131838 23.53 ns/op
Benchmark_GMutex_TryRLock-12 15557462 77.84 ns/op
第二行和第四行对应,第三行和第六行对应。
gf文档里面里面的时间少了一半。