GOgolang 协程初探 ,基于生产者/消费者

Posted jzsg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GOgolang 协程初探 ,基于生产者/消费者相关的知识,希望对你有一定的参考价值。


package main

import (
    "fmt"
    "time"
)

func main() 
    // 管道 固定5个int
    ch := make(chan int, 5)
    // 生成者 协程
    // 管道只能存5个int, 但是要生产15个int, 这就要等消费者先消费完(未消费前生产会阻塞), 然后生产
    go func(ch chan int) 
        for i := 0; i < 15; i++ 
            ch <- i
            fmt.Println("put data: ", i)
        
    (ch)

    // 主线程充当消费者, 一直会等待把生产数据全部读完
    for 
        data := <-ch
        fmt.Println("read data: ", data)
        time.Sleep(time.Second)
    



以上是关于GOgolang 协程初探 ,基于生产者/消费者的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin 协程Channel 通道 ③ ( CoroutineScope#produce 构造生产者协程 | CoroutineScope#actor 构造消费者协程 )

Kotlin 协程Channel 通道 ③ ( CoroutineScope#produce 构造生产者协程 | CoroutineScope#actor 构造消费者协程 )

Kotlin 协程Channel 通道 ③ ( CoroutineScope#produce 构造生产者协程 | CoroutineScope#actor 构造消费者协程 )

Go语言协程并发---生产者消费者实例

Python协程实现生产者消费者模型

关于Python的协程问题总结