finish

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

小樊
84
2024-10-10 21:56:01
栏目: 编程语言

在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中执行任务,并在任务完成后将结果返回给调用者。

0
看了该问题的人还看了