如何通过finish方法返回结果给调用者

avatar
作者
筋斗云
阅读量:0

在Golang中,我们通常使用goroutine和channel来实现并发编程。当你想要在一个goroutine中执行一个任务,并在任务完成后返回结果给调用者时,你可以使用channel来实现。下面是一个简单的示例:

package main  import ( 	"fmt" 	"time" )  func worker(done chan<- int) { 	// 模拟一个耗时任务 	time.Sleep(2 * time.Second) 	result := 42 	done <- result }  func main() { 	done := make(chan int) 	go worker(done)  	result := <-done 	fmt.Println("任务完成,结果是:", result) } 

在这个示例中,我们定义了一个名为worker的函数,它接受一个只写整数类型的channel done作为参数。在worker函数中,我们模拟了一个耗时任务,然后完成任务后将结果发送到done channel。

main函数中,我们创建了一个名为done的channel,然后启动一个新的goroutine来执行worker函数。接着,我们从done channel接收结果,并将其打印出来。

这种方式可以让你在一个goroutine中执行任务,并在任务完成后将结果返回给调用者。

广告一刻

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