在群裡看到一段程式碼,是記憶體模型的問題還是協程排程的問題呢?

medusar發表於2019-08-10

下面程式碼持續輸出 0,不能理解,感覺排程是 ok 的,兩個 goroutine 都有機會呼叫,但是為啥只輸出 0 呢?

package main

import (
    "fmt"
    "sync"
)

func main() {
    var (
        i  int
        wg sync.WaitGroup
    )

    wg.Add(2)

    go func() {
        for {
            i++
        }
    }()

    go func() {
        for {
            fmt.Println(i)
        }
    }()

    wg.Wait()

}

更多原創文章乾貨分享,請關注公眾號
  • 在群裡看到一段程式碼,是記憶體模型的問題還是協程排程的問題呢?
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章