main.go
package main
import (
"fmt"
"sync"
"time"
)
// 全局变量
var mp sync.Map
func syncGolbal() {
if v, exists := mp.Load("name"); exists {
fmt.Println(v)
} else {
mp.Store("name", "chf")
}
}
// 管道
type Task struct {
A int
B int
}
var ch = make(chan Task, 100) // 创建管道, 容量100
// 生产者
func producer() {
for i := 0; i < 10; i++ {
// 往管道插入
ch <- Task{A: i + 3, B: i - 8}
}
}
// 消费者
func consumer() {
var task Task
var sum int
for i := 0; i < 10; i++ {
task = <-ch
sum = task.A + task.B
fmt.Println(sum)
}
}
func main() {
// go syncGolbal()
// go syncGolbal()
// go syncGolbal()
// go syncGolbal()
go producer()
go consumer()
time.Sleep(time.Second)
}