我有兩個goroutine,Routine 1 {// do something}Routine 2 { // do something} main { // do something}是否可以從例程1中開始,如果滿足某些條件,則停止整個程序執(zhí)行?停止執(zhí)行main和例程2嗎?可以舉一個簡單的例子。
2 回答

滄海一幻覺
TA貢獻1824條經(jīng)驗 獲得超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條經(jīng)驗 獲得超4個贊
您還可以使用通道使例程1與例程2通信。WLOG例程1可以沿通道發(fā)送一些內(nèi)容,而例程2可以使用select語句從該通道中取出某些內(nèi)容,或者從另一個“工作”通道(為例程提供工作的通道)中取出某些內(nèi)容。當例程2從“終止執(zhí)行”通道中刪除某些內(nèi)容時,它可能會完成并調(diào)用os.Exit(0)。
- 2 回答
- 0 關注
- 205 瀏覽
添加回答
舉報
0/150
提交
取消