go語言之goroutine的使用

字號+ 編輯: IT男在阿里 修訂: 小红帽 來源: 利志分享 2023-09-10 我要說兩句(0)

通過代碼說明goroutine的使用方法。

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

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: PHP+JS聊天群

相關課文
  • GO語言GORM如何更新字段

  • gorm如何創建記錄與模型定義需要注意什麽

  • gorm一般查詢與高級查詢

  • GORM時間戳跟蹤及CURD(增刪改查)

我要說說
網上賓友點評