如何杀死goroutines?

时间:2018-08-21 03:23:07

标签: go goroutine

我想知道如何杀死/停止goroutines。所有示例均基于频道和select,这似乎仅在goroutine包含可在其间侦听频道的重复任务时才起作用。有没有办法在下面的goroutine返回之前停止它?

package main

import (
        "time"
)

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

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

1 个答案:

答案 0 :(得分:3)

  

是否可以在返回以下goroutine之前停止它?

没有(除了调用os.Exit终止整个程序外)。

Goroutines是独立的,不能从外部控制。