【问题标题】:How to kill goroutines? [duplicate]如何杀死 goroutine? [复制]
【发布时间】:2018-08-21 11:57:09
【问题描述】:

我想知道如何杀死/停止 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
}

【问题讨论】:

    标签: go goroutine


    【解决方案1】:

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

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

    Goroutines 是自包含的,无法从外部控制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 2020-07-15
      • 2013-05-29
      • 2013-04-18
      • 1970-01-01
      相关资源
      最近更新 更多