试图在goroutine中设置for循环

试图在goroutine中设置for循环,go,Go,我是一个试图同步运行两个函数的初学者,我使用waitGroup等待其中一个函数。问题是Go似乎完全忽略了我的for循环,并打印packetsReceived=0 func introducePacket(firstVortex chan string) { index := 1 packetsSended := 0 msg := strconv.Itoa(index) + " message" for packetsSended > 14

我是一个试图同步运行两个函数的初学者,我使用waitGroup等待其中一个函数。问题是Go似乎完全忽略了我的for循环,并打印packetsReceived=0

func introducePacket(firstVortex chan string) {
    index := 1
    packetsSended := 0
    msg := strconv.Itoa(index) + " message"
    for packetsSended > 14 {
        select {
        case firstVortex <- msg:
            fmt.Println(msg)
            packetsSended++
        default:
            time.Sleep(10 * time.Millisecond)
        }
    }
}

func receivePacket(wg *sync.WaitGroup, lastVortex chan string) {
    packetsReceived := 0
    fmt.Println("RECEIVE")
    for packetsReceived > 14 {
        select {
        case msg := <-lastVortex:
            fmt.Println(msg)
            packetsReceived++
        default:
            time.Sleep(1 * time.Millisecond)
        }
    }
    fmt.Println(packetsReceived)
    defer wg.Done()
}


func main() {

    var wg sync.WaitGroup

    wg.Add(1)

    vortexOne := make(chan string, 1)
    vortexThree := make(chan string, 1)

    go introducePacket(vortexOne)
    go receivePacket(&wg, vortexThree)

    wg.Wait()
}
func导入包(第一个字符串){
索引:=1
已卸载的包:=0
msg:=strconv.Itoa(索引)+“消息”
对于已卸载的包装>14{
挑选{
案例14{
挑选{

case msg:=for循环不会执行,因为从一开始
packetsReceived>14
就为false。也许你的意思是
for packetsReceived这是真的……非常感谢,但我认为这一个仍然不起作用。