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") }
閲完此文,您的感想如何?
-
有用
1
-
沒用
0
-
開心
0
-
憤怒
0
-
可憐
0
相關課文
-
GO語言GORM如何更新字段
-
gorm如何創建記錄與模型定義需要注意什麽
-
gorm一般查詢與高級查詢
-
GORM時間戳跟蹤及CURD(增刪改查)
我要說說
網上賓友點評
課文推薦