猿问

如何按所需顺序打印数字

我在互联网上找到了很多关于互斥锁的教程,然后在我尝试构建自己的示例之后。看看我下面的代码片段。


package main


import (

    "fmt"

    "sync"

    "time"

)


func main() {


    thread := new(sync.Mutex)

    y := 0


    for i := 0; i < 10; i++ {

        go func() {

            y = i

            thread.Lock()

            fmt.Println(y)

            thread.Unlock()

        }()

    }


    time.Sleep(100000)


}

作为输出,我只有 10 个,但我的目标是获得 1、2、3、4...10 个。我怎样才能做到这一点?或者我的样本没有任何意义?


12345678_0001
浏览 182回答 3
3回答

猛跑小猪

尝试 :for i := 0; i < 10; i++ {&nbsp; &nbsp; go func(j int) {&nbsp; &nbsp; &nbsp; &nbsp; thread.Lock()&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println(j)&nbsp; &nbsp; &nbsp; &nbsp; thread.Unlock()&nbsp; &nbsp; }(i)}这就是为什么。
随时随地看视频慕课网APP

相关分类

Go
我要回答