package main
import (
"fmt"
"math/rand"
"time"
)
func p() {
for i := 0; i < 2; i++ {
fmt.Println(i)
time.Sleep(time.Second * 1)
}
}
func sell(c chan int) {
for {
num := <-c
fmt.Println("sell", num, "bread")
}
}
func produce(c chan int) {
for {
num := rand.Intn(10)
t := time.Duration(num)
fmt.Println("product", num, "bread")
c <- num
time.Sleep(time.Second * t)
}
}
func main() {
//go关键字+函数名即可启动一个go routine:
go p()
var input string
fmt.Scanln(&input)
fmt.Println("End")
//go routine使用channel来进行routine间的通信
//显示结果也证明,channel的使用规则
var c chan int = make(chan int)
go sell(c)
go produce(c)
var input2 string
fmt.Scanln(&input2)
fmt.Println("end")
}阅完此文,您的感想如何?
-
有用
2
-

没用
1
-

开心
1
-

愤怒
1
-

可怜
1
1.如文章侵犯了您的版权,请发邮件通知本站,该文章将在24小时内删除;
2.本站标注原创的文章,转发时烦请注明来源;
3.Q群: 2702237 13835667
相关课文
-
GO语言GORM如何更新字段
-
gorm如何创建记录与模型定义需要注意什么
-
gorm一般查询与高级查询
-
GORM时间戳跟踪及CURD(增删改查)
我要说说
网上嘉宾点评
课文推荐