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.交流群: 2702237 13835667
相關課文
-
GO語言GORM如何更新字段
-
gorm如何創建記錄與模型定義需要注意什麽
-
gorm一般查詢與高級查詢
-
GORM時間戳跟蹤及CURD(增刪改查)
我要說說
網上賓友點評
課文推薦