我有两个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()
}
慕标5832272
TA贡献1966条经验 获得超4个赞
您还可以使用通道使例程1与例程2通信。WLOG例程1可以沿通道发送一些内容,而例程2可以使用select语句从该通道中取出某些内容,或者从另一个“工作”通道(为例程提供工作的通道)中取出某些内容。当例程2从“终止执行”通道中删除某些内容时,它可能会完成并调用os.Exit(0)。
- 2 回答
- 0 关注
- 170 浏览
添加回答
举报
0/150
提交
取消