[GO]多任務的資源競爭問題


package main

import (
    "fmt"
    "time"
)

func Printer(s string)  {
    for _, data := range s {
        //fmt.Println(string(data))
        fmt.Printf("%c", data)
        time.Sleep(time.Second)
    }
}

func person1()  {
    Printer("hello")
}

func person2()  {
    Printer("world")
}

func main() {
    go person1()
    go person2()
    for true {

    }
}

這段代碼執行的結果為

hweolrllodc

可以看到因為使用了並發它的打印是交叉了的,但是在實際的使用過程中,我們肯定是希望打印了person1的任務后再打印person2的任務,如何在使用並發的時候也能實現呢?下一篇,Channel的使用


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com