Golang con canalización en búfer

package main

import (
	"fmt"
	"time"
)

func main() {
	// 定义一个channel
	c := make(chan int, 3)
	fmt.Println("len(c) = ", len(c), ", cap(c) = ", cap(c))
	go func() {
		defer fmt.Println("子go程结束")
		for i := 1; i < 4; i++ {
			c <- i
			fmt.Println("子go程正在运行,发送的元素= ", i, "len(c)=", len(c), "cap(c)=", cap(c))
		}
	}()

	time.Sleep(2 * time.Second)
	for i := 1; i < 4; i++ {
		num := <-c // 从channel中接收数据并赋值给num
		fmt.Println("接收数据 num = ", num)
	}
	fmt.Println("main结束")
}

 

Supongo que te gusta

Origin blog.csdn.net/qq2942713658/article/details/115272154
Recomendado
Clasificación