channel 生产者消费者

package main

import (
    "fmt"
    "time"
)

func producer(c chan int) {
    for i := 0; i < 3; i++ {
        fmt.Printf("Alice puts product, ID is : %d \n", i)
        c <- i
        time.Sleep(time.Second)
    }
    defer close(c)
}
func consumer(c chan int) {
    hasMore := true
    var p int
    for hasMore {
        if p, hasMore = <-c; hasMore {
            fmt.Printf("Bob gets product, ID is : %d \n", p)
        }
    }
}

func main() {
    c := make(chan int)
    go producer(c)
    consumer(c)
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容