默认情况下,程序不会等待 goroutine 结束就退出了。 下面将讲解一种等待所有 goroutine 结束的方法:使用 sync.WaitGroup 。
package main
import (
"fmt"
"sync"
)
func main() {
var wg sync.WaitGroup // 定义 WaitGroup
arr := [3]string{"a", "b", "c"}
for _, v := range arr {
wg.Add(1) // 增加一个 wait 任务
go func(s string) {
defer wg.Done() // 函数结束时,通知此 wait ...
可以通过下列命令复制文档
> use db1 > var docs=db.doc1.find(); > use db2; > docs.forEach(function(doc){ db.doc2.insert(doc); } );