【发布时间】:2016-06-10 20:01:57
【问题描述】:
我正在使用带有标签的无限 for 循环。在 for 循环的范围之外,我有一个计划函数作为 go 例程运行。当满足某个条件时,我想从预定函数中中断 for 循环。我怎样才能做到这一点?这是我正在尝试的,由于范围问题,这显然行不通。
package main
import (
"fmt"
"time"
"sync"
)
func main() {
count := 0
var wg sync.WaitGroup
wg.Add(1)
t := time.NewTicker(time.Second*1)
go func (){
for {
fmt.Println("I will print every second", count)
count++
if count > 5 {
break myLoop;
wg.Done()
}
<-t.C
}
}()
i := 1
myLoop:
for {
fmt.Println("iteration", i)
i++
}
wg.Wait()
fmt.Println("I will execute at the end")
}
【问题讨论】:
-
你看过 Go 频道吗?
-
这是基本的 Go 并发,一个很好的起点可能是Concurrency chapter in the Tour of Go
-
阅读 Go 博客使用取消管道:blog.golang.org/pipelines
标签: go