我有一个chan string缓冲的,我一直用随机字符串填充它,直到一段时间。持续时间过去或直到它变满。
我的问题是,考虑到它是一次性任务还是有更方便的方法,我应该使用自动收报机吗?
这是我目前的做法
package main
import (
"fmt"
"time"
)
func main() {
res := fillChan(time.Duration(1*time.Nanosecond), 100000)
fmt.Println(len(res))
}
func fillChan(maxDuration time.Duration, chanSize int) chan string {
c := make(chan string, chanSize)
ticker := time.NewTicker(maxDuration)
for {
select {
case <-ticker.C:
ticker.Stop()
return c
case c <- "Random message":
default:
return c
}
}
}
白衣非少年
相关分类