我有两个goroutine,
Routine 1 {
// do something
}
Routine 2 {
// do something
}
main {
// do something
}在例程1中,如果满足某些条件,是否可以停止整个程序的执行?是否停止main和例程2的执行?可以给出一个简单的例子。
发布于 2011-12-06 00:18:31
例如,
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()
}发布于 2011-12-07 07:12:49
您还可以使用通道让routine1与routine2通信。WLOG routine1可以通过通道发送某些内容,而routine2可以使用select语句从该通道或从另一个“工作”通道(为例程提供工作的通道)中删除某些内容。当routine2从“终止执行”通道中删除一些东西时,它可以完成并调用os.Exit(0)。
https://stackoverflow.com/questions/8387570
复制相似问题