第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

goroutine 調(diào)用行之后的行是否比 goroutine 的第一行更早開始?

goroutine 調(diào)用行之后的行是否比 goroutine 的第一行更早開始?

Go
慕無忌1623718 2022-06-01 18:18:53
這是代碼:import "fmt"func main() {    messages := make(chan string, 1)    go func(c chan string) {        c <- "Hi"    }(messages)    select {    case msg := <-messages:        fmt.Println("received message", msg)    default:        fmt.Println("no message received")    }}它輸出no message received. 或者這段代碼:import (    "fmt"    "time")func f(from string) {    for i := 0; i < 3; i++ {        fmt.Println(from, ":", i)    }}func main() {    go f("goroutine")    go func(msg string) {        fmt.Println(msg)    }("going")    time.Sleep(time.Second)    fmt.Println("done")}意外打印goinggoroutine : 0goroutine : 1goroutine : 2盡管 goroutine 的going調(diào)用晚于計數(shù)器。為什么?
查看完整描述

1 回答

?
陪伴而非守候

TA貢獻1757條經(jīng)驗 獲得超8個贊

多個 goroutine 之間沒有執(zhí)行順序保證。只有當(dāng)兩個 goroutine 使用一個通道交換數(shù)據(jù),或者使用另一個同步機制進行同步時,才能建立排序保證。在您的情況下,您碰巧觀察到一個 goroutine 恰好在另一個之前運行的執(zhí)行。當(dāng)您多次運行它時,您可能會觀察到不同的順序。



查看完整回答
反對 回復(fù) 2022-06-01
  • 1 回答
  • 0 關(guān)注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號