我正在深入 Golang 并且有一个问题,我已经研究了几天,我似乎无法掌握 goroutines 的概念以及它们是如何使用的。
基本上我是,试图生成数百万条随机记录。我有生成随机数据的函数,并将创建一个包含这些数据的巨大 .CSV 文件。
我的问题是是否有可能使这个并发并加快速度?
我的代码基本上是生成一个随机字符串,将字符串写入文件最多 N 次(其中 N 是您想要的任何内容)。
我的问题是是否可以同时执行此操作以减少执行时间。似乎无论我如何处理这个问题,我仍然得到相同的基准测试,就好像我没有使用 go 例程一样。
这是我到目前为止所拥有的示例:
func worker(c chan string) {
for {
c <- /* Generate random data using other functions here */
}
close(c)
}
func writer(s string) {
csvfile.WriteString(s)
}
func main(){
receive := make(chan string)
for i := 0; i < 100; i++ {
go worker(receive)
}
for i := 0; i < 10000; i++ {
go writer(<-receive)
}
}
在我生成数据的地方,我使用了大量来自https://github.com/Pallinder/go-randomdata的函数调用。你认为这可能是我一直在失去的地方吗?
任何帮助,将不胜感激。
扬帆大鱼
智慧大石
相关分类