GO语言:goroutine通道

88 阅读1分钟
package main

import "fmt"

func printData(data string) {
	for i := 0; i < 2000; i++ {
		fmt.Println(data, ":", i)
	}
}

func main() {
	go printData("Jack") //高并发
	go printData("Lisa") //高并发

	var input string
	fmt.Scanln(&input)
}
package main

import (
	"fmt"
	"time"
)

func printData(data string) {
	for i := 0; i < 20; i++ {
		time.Sleep(1000 * time.Millisecond) //1秒
		fmt.Println(data, ":", i)
	}
}

func main() {
	go printData("Jack")
	go printData("Lisa")

	var input string
	fmt.Scanln(&input)
}
package main

import (
	"fmt"
)

func main() {
	message := make(chan string) //创建一个通道,接收string信息(默认一个)
	go func() {message <- "ping"}() //发送数据给通道
	fmt.Println(message) //数据内存地址

	msg := <-message //数据赋值给msg
	fmt.Println(msg) //打印数据内容
}
package main

import "fmt"

func main() {
	messages := make(chan string, 2)//通道接收多个string消息
	messages <- "hello go"
	messages <- "hello tom"
	
	fmt.Println(<-messages) //返回第一个结果
	fmt.Println(<-messages) //返回第二个结果

}