sync.Mutex Go · 包功能
互斥锁:保证同一时刻最多只有一个 goroutine 进入临界区,防止数据竞争。
怎么用
var mu sync.Mutex; mu.Lock(); defer mu.Unlock()
小例子
package main
import (
"fmt"
"sync"
)
func main() {
var mu sync.Mutex
mu.Lock()
fmt.Println("临界区")
mu.Unlock()
}
运行结果
输出 临界区
提醒:Lock 和 Unlock 必须成对,通常用 defer 保证释放
在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Go全部词条