`程序运行流程:`
读取userc和passc 数组,开启2个线程,2个线程同时使用一个数组,操作读取。
`遇到的问题:`
按照目前的代码,我pr()每次打印后,线程都会关闭,在重新开启一个线程,我并不希望这2个主要的线程结束,我想让这2个线程y一直运行,一直操作数组,将数组的值都遍历完,然后一起结束。
```go
package main
import (
"fmt"
"sync"
)
var wg sync.WaitGroup
var wgi int = 1
var limit int = 2 //线程数量
func pr(user, pass string) {
fmt.Println(user, pass)
}
func main() {
userc := []string{"13362011111", "13362022222", "13362033333", "13362444444"}
passc := []string{"123456", "000000"}
limitChan := make(chan struct{}, limit)
for _, user := range userc {
for _, pass := range passc {
wg.Add(wgi)
limitChan <- struct{}{}
go func(user1, pass1 string) {
pr(user1, pass1)
<-limitChan
wg.Done()
}(user, pass)
}
}
wg.Wait()
}
```
有疑问加站长微信联系(非本文作者)