非常非常有意思的一道编程题
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会有什么结果?