互斥锁 sync.Mutex
sync.Mutex 只有两个公开的指针方法 Lock() 和 Unlock().
Lock() 用于锁定当前互斥量.
Unlock() 用于对互斥量解锁.
- 如果锁定了一个已锁定的互斥锁,则进行重复加锁的goroutine将会阻塞. 当互斥锁解锁后,阻塞的goroutine会唤醒.
演示程序:
package main
import (
"fmt"
"sync"
"time"
)
func main() {
var mutex sync.Mutex
fmt.Println("加锁. (main)")
mutex.Lock()
fmt.Println("锁上了 (main)")
go func() {
fmt.Println("加锁 (goroutine)")
mutex