• go nobuf chan


    不带缓存区的, 必需要goroutine等待着从队列中取,才能放入无缓存的队列中

    package main
    
    import (
    	"fmt"
    	"time"
    )
    
    func produce(c chan int) {
    	fmt.Println("produce start")
    	time.Sleep(time.Second * 2)
    	c <- 1000
    	fmt.Println("produce finished")
    }
    
    func consume(c chan int) {
    	data := <-c
    	fmt.Println(data)
    }
    
    func main() {
    	var c chan int
    	fmt.Printf("c=%v\n", c)
    
    	c = make(chan int)  /// 不带缓存区的, 必需要goroutine等待着从队列中取,才能放入无缓存的队列中
    	go consume(c)  // goroutine 无所谓先后
    	go produce(c)
    	//go consume(c) // 初始化队列如果把这个消费队列的goroutine注释, 无法把数据放入队列,5秒之后直接结束
    	// consume(c)
    	time.Sleep(time.Second * 5)
    }
    
  • 相关阅读:
    C++字符串(srtring)反转
    字典(Dictionary)
    畅通工程
    子串计算
    神奇的口袋
    SLT 优先队列 哈弗曼树最小带权路径
    大数阶乘
    整数拆分
    A+B (带有,的数字)
    Hdu 1232 畅通工程
  • 原文地址:https://www.cnblogs.com/heris/p/15991476.html
Copyright © 2020-2023  润新知