互斥锁

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混用 有可能造成隐性死锁




posted @ 2019-12-19 19:47  离地最远的星  阅读(108)  评论(0编辑  收藏  举报