如何杀死 goroutine? [复制]

2023-12-06

我想知道如何杀死/停止 goroutine。所有示例都基于通道和选择,这似乎只有在 goroutine 包含一些可以在通道上监听的重复任务时才有效。有没有办法在下面的 goroutine 返回之前停止它?

package main

import (
        "time"
)

func main() {
    stop := make(chan string, 1)

    go func() {
        time.Sleep(10 * time.Second)
        stop <- "stop"
        return
    }()
    <- stop
}

有没有办法在下面的 goroutine 返回之前停止它?

不,没有(除了调用 os.Exit 来中止整个程序)。

Goroutine 是独立的,无法从外部控制。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何杀死 goroutine? [复制] 的相关文章

随机推荐