转到线程-停止执行

我有两个goroutine,


Routine 1 {

// do something

}

Routine 2 {

 // do something

}

 main {

 // do something

}

是否可以从例程1中开始,如果满足某些条件,则停止整个程序执行?停止执行main和例程2吗?可以举一个简单的例子。


呼唤远方
浏览 171回答 2
2回答

沧海一幻觉

例如,package mainimport "os"func routine1() {    // set exit = true when ready to exit    exit := false    if exit {        os.Exit(0)    }}func routine2() {}func main() {    go routine1()    go routine2()}

慕标5832272

您还可以使用通道使例程1与例程2通信。WLOG例程1可以沿通道发送一些内容,而例程2可以使用select语句从该通道中取出某些内容,或者从另一个“工作”通道(为例程提供工作的通道)中取出某些内容。当例程2从“终止执行”通道中删除某些内容时,它可能会完成并调用os.Exit(0)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go