为了账号安全,请及时绑定邮箱和手机立即绑定

转到线程-停止执行

转到线程-停止执行

Go
呼唤远方 2021-04-28 13:12:38
我有两个goroutine,Routine 1 {// do something}Routine 2 { // do something} main { // do something}是否可以从例程1中开始,如果满足某些条件,则停止整个程序执行?停止执行main和例程2吗?可以举一个简单的例子。
查看完整描述

2 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

例如,


package main


import "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()

}


查看完整回答
反对 回复 2021-05-10
?
慕标5832272

TA贡献1966条经验 获得超4个赞

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


查看完整回答
反对 回复 2021-05-10
  • 2 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信