Golang怎么通过通道实现goroutine通信

avatar
作者
猴君
阅读量:0

在Golang中,可以使用通道(channel)来实现goroutine之间的通信。通过使用通道,可以在goroutine之间传递数据,并进行同步操作。

下面是一个简单的示例,演示了如何使用通道来实现goroutine之间的通信:

package main  import ( 	"fmt" )  func worker(id int, input <-chan int, output chan<- int) { 	for val := range input { 		fmt.Printf("Worker %d received input: %d\n", id, val) 		output <- val * 2 	} }  func main() { 	inputChan := make(chan int) 	outputChan := make(chan int)  	go worker(1, inputChan, outputChan) 	go worker(2, inputChan, outputChan)  	for i := 0; i < 5; i++ { 		inputChan <- i 	}  	close(inputChan)  	for i := 0; i < 5; i++ { 		result := <-outputChan 		fmt.Printf("Received result: %d\n", result) 	} } 

在上面的示例中,我们定义了一个worker函数,它接收一个整数类型的通道作为输入,并将结果发送到另一个整数类型的通道中。在main函数中,我们创建了两个worker goroutine,并通过inputChan将输入发送给它们。然后,我们从outputChan中接收结果,并打印出来。

通过使用通道,我们可以方便地实现goroutine之间的通信,使得并发编程变得更加简单和有效。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!