其他分享
首页 > 其他分享> > Golang 通道控制并发 goroutine 2

Golang 通道控制并发 goroutine 2

作者:互联网

代码示例:

package main

import (
	"fmt"
	"reflect"
	"time"
)

func Channel1(c chan string) {
	time.Sleep(time.Second * 3)
	fmt.Println("Enter Channel1!")
	c <- "ydook.com 1"
}

func Channel2(c chan string) {
	fmt.Println("Enter Channel2!")
	fmt.Println("Channel2 c = ", c)
	fmt.Println("Channel2 type c = ", reflect.TypeOf(c))

	time.Sleep(time.Second * 2)

	c <- "ydook.com 2"
}

func main() {

	c := make(chan string)
	fmt.Println("c = ", c)
	fmt.Println("type c = ", reflect.TypeOf(c))

	go Channel1(c)

	cmag1 := <-c
	fmt.Println("cmag1 = ", cmag1)
	fmt.Println("type cmag1 = ", reflect.TypeOf(cmag1))

	cb := make(chan string)
	fmt.Println("cb = ", cb)
	fmt.Println("type cb = ", reflect.TypeOf(cb))

	go Channel2(cb)
	fmt.Println("cb = ", cb)

	cmag2 := <-cb
	fmt.Println("cmag = ", cmag2)
	fmt.Println("type cmag2 = ", reflect.TypeOf(cmag2))

}

运行结果:

Enter Channel1!
cmag1 =  ydook.com 1
type cmag1 =  string
cb =  0xc0000180c0
type cb =  chan string
cb =  0xc0000180c0
Enter Channel2!
Channel2 c =  0xc0000180c0
Channel2 type c =  chan string
cmag =  ydook.com 2
type cmag2 =  string



标签:string,Channel2,cb,goroutine,chan,Golang,并发,Channel1,type
来源: https://blog.csdn.net/weixin_42255190/article/details/98958817