package main
import (
"fmt"
"strconv"
)
import "time"
func main() {
// 定义缓冲区为1的channel,类似于java里的阻塞队列
chala := make(chan int,1)
// 主线程插入数据1
chala <- 1
// go启动协程执行func
go say(chala, "协程1")
go say(chala, "协程2")
// 主线程sleep 给两个线程时间执行。主线程结束,子线程也会结束
time.Sleep(100)
}
func say(a chan int, b string){
for i := 0;i < 50;i++{
// 协程取出数据
data := <- a
fmt.Println(b + " " + strconv.Itoa(data))
// 插入数据
a <- data+1
}
}
go实现交替打印
最新推荐文章于 2024-12-26 21:43:30 发布