首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Go Threads停止执行

Go Threads停止执行
EN

Stack Overflow用户
提问于 2011-12-05 23:21:59
回答 2查看 1.5K关注 0票数 2

我有两个goroutine,

代码语言:javascript
复制
Routine 1 {
// do something
}
Routine 2 {
 // do something
}
 main {
 // do something
}

在例程1中,如果满足某些条件,是否可以停止整个程序的执行?是否停止main和例程2的执行?可以给出一个简单的例子。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-06 00:18:31

例如,

代码语言:javascript
复制
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()
}
票数 3
EN

Stack Overflow用户

发布于 2011-12-07 07:12:49

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8387570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档