互斥锁
package main
import (
"fmt"
"sync"
"time"
)
var mux sync.Mutex
func Printer(s string) {
mux.Lock()
for _, v := range s {
fmt.Printf("%c", v)
time.Sleep(300 * time.Millisecond)
}
mux.Unlock()
}
func main() {
go Printer("hello")
Printer("world")
for {
}
}
读写锁
读时共享,写时独占,写锁优先级比读锁高
在go语言中尽量不要将互斥锁读写锁和channel混用 有可能造成隐性死锁
来自为知笔记(Wiz)