本期小窍门用到了两个组件
- mutex 这个类似其他语言的互斥锁
- waitGroup 这个类似其他语言的信号量或者java的栅栏锁
示例如下
func TestDoSomething04(t *testing.T) {
total := 0
var wg = sync.WaitGroup{}
var mut = sync.Mutex{}
for i := 0; i < 5000; i++ {
go func() {
wg.Add(1)
defer func() {
mut.Unlock()
wg.Done()
}()
mut.Lock()
total++
}()
}
wg.Wait()
t.Log(total)
}
文章来源地址https://www.toymoban.com/news/detail-649663.html
文章来源:https://www.toymoban.com/news/detail-649663.html
到了这里,关于编程小窍门: 一个简单的go mutex的小例子的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!