非常非常有意思的一道編程題
package main
import (
"fmt"
"sync"
"time"
)
var mu sync.RWMutex
var count int
func main() {
go A()
time.Sleep(2 * time.Second)
mu.Lock()
defer mu.Unlock()
count++
fmt.Println(count)
}
func A() {
mu.RLock()
defer mu.RUnlock()
B()
}
func B() {
time.Sleep(5 * time.Second)
C()
}
func C() {
mu.RLock()
defer mu.RUnlock()
}
大家可以在下面評論留言,留下結果 稍後會加上對這段代碼的解釋
其它的情況:
- 將func B() 的sleep時間變爲0 系統會有什麼結果?
- 將func B() 的sleep時間變爲2 系統會有什麼結果?
- 將main() 函數中的sleep時間變爲0會有什麼結果?