我想让统计例程有条件,以便它只在某些情况下运行,否则会浪费一半的时间。现在我有一个 go 例程充当生产者,通过缓冲通道为两个消费者例程提供数据。有没有办法让统计例程是有条件的,或者我应该遵循更好的模式?在此先感谢您的任何帮助!
func main() {
options()
go produce(readCSV(loc))
go process()
go statistics() // only on flag
<-done
}
func produce(entries [][]string) {
regex, err := regexp.Compile(reg)
if err != nil {
log.Error(reg + ", is not a valid regular expression")
} else {
for _, each := range entries {
if regex.MatchString(each[col]) {
matches <- each
stats <- each // only on flag
}
}
}
done <- true
}
func process() {
for {
match := <-matches
if len(match) != 0 {
// PROCESS
}
}
}
func statistics() {
for {
stat := <-stats
if len(stat) != 0 {
// STATISTICS
}
}
}
侃侃无极
富国沪深
暮色呼如
相关分类