鎖賦值給其他變數為什麼會死鎖呢?

lifei6671發表於2019-04-29
package main
import (
    "fmt"
    "sync"
)
type MyMutex struct {
    count int
    sync.Mutex
}
func main() {
    var mu MyMutex
    mu.Lock()
    var mu2 = mu
    mu.count++
    mu.Unlock()
    mu2.Lock()
    mu2.count++
    mu2.Unlock()
    fmt.Println(mu.count, mu2.count)
}

這段程式碼為什麼會死鎖呢?

賦值語句var mu2 = mu 執行後不應該是拷貝程式設計新的變數嗎?

更多原創文章乾貨分享,請關注公眾號
  • 鎖賦值給其他變數為什麼會死鎖呢?
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章