溫馨提示×

如何通過finish方法返回結(jié)果給調(diào)用者

小樊
81
2024-10-10 21:56:01
欄目: 編程語言

在Golang中,我們通常使用goroutine和channel來實現(xiàn)并發(fā)編程。當你想要在一個goroutine中執(zhí)行一個任務(wù),并在任務(wù)完成后返回結(jié)果給調(diào)用者時,你可以使用channel來實現(xiàn)。下面是一個簡單的示例:

package main

import (
	"fmt"
	"time"
)

func worker(done chan<- int) {
	// 模擬一個耗時任務(wù)
	time.Sleep(2 * time.Second)
	result := 42
	done <- result
}

func main() {
	done := make(chan int)
	go worker(done)

	result := <-done
	fmt.Println("任務(wù)完成,結(jié)果是:", result)
}

在這個示例中,我們定義了一個名為worker的函數(shù),它接受一個只寫整數(shù)類型的channel done作為參數(shù)。在worker函數(shù)中,我們模擬了一個耗時任務(wù),然后完成任務(wù)后將結(jié)果發(fā)送到done channel。

main函數(shù)中,我們創(chuàng)建了一個名為done的channel,然后啟動一個新的goroutine來執(zhí)行worker函數(shù)。接著,我們從done channel接收結(jié)果,并將其打印出來。

這種方式可以讓你在一個goroutine中執(zhí)行任務(wù),并在任務(wù)完成后將結(jié)果返回給調(diào)用者。

0