Golang 关闭 Goroutine:使用通道发送信号
在 Go 语言中,关闭一个 goroutine 的常用方法是使用一个通道来传递一个信号来通知 goroutine 停止运行。以下是一个示例代码:\n\ngo\npackage main\n\nimport (\n\t"fmt"\n\t"time"\n)\n\nfunc worker(done chan bool) {\n\tfmt.Println("Worker started")\n\ttime.Sleep(time.Second) // 模拟工作\n\tfmt.Println("Worker done")\n\n\tdone <- true // 发送信号,工作完成\n}\n\nfunc main() {\n\tdone := make(chan bool)\n\tgo worker(done)\n\n\t// 等待工作完成信号\n\t<-done\n\tfmt.Println("Main goroutine done")\n}\n\n\n在这个例子中,我们创建了一个名为worker的 goroutine,并传入一个用于发送信号的通道done。在worker函数中,它会执行一些工作,然后发送一个true值到done通道以表示工作完成。\n\n在main函数中,我们创建了一个done通道,并使用go关键字启动了一个worker goroutine。然后,我们使用<-done语法来等待工作完成的信号。当worker goroutine 发送信号后,主 goroutine 将继续执行剩余的代码。\n\n输出将会是:\n\n\nWorker started\nWorker done\nMain goroutine done\n\n\n通过这种方式,我们可以在需要关闭 goroutine 时通知它停止运行。
原文地址: https://www.cveoy.top/t/topic/p8nx 著作权归作者所有。请勿转载和采集!