golang 并发题目测试
1 Mutex
package main
import (
"fmt"
"sync"
)
var mu sync.Mutex
var chain string
func main() {
chain = "main"
A()
fmt.Println(chain)
}
func A() {
mu.Lock()
defer mu.Unlock()
chain = chain + " --> A"
B()
}
func B() {
chain = chain + " --> B"
C()
}
func C() {
mu.Lock()
defer mu.Unlock()
chain = chain + " --> C"
}2 RWMutex
3 Waitgroup
4 双检查实现单例
5 Mutex
6 Pool
7 channel
8 channel
9 Map
10 happens before
答案
1. D
2. D
3. D
4. C
5. D
6. C
7. C
8. D
9. A
10. B
最后更新于