golang 無緩衝 chan

package main

import (
    "fmt"
)

var c = make(chan int)
var str string

func ready() {
    str = "abc"
    fmt.Println("ready1")
    <-c //get
    fmt.Println("ready2")
}

func main() {
    go ready()
    c <- 1 //put
    fmt.Println(str)
}
ready1
ready2//ready2在abc前 是由於調度,沒有必然關係
abc

1.對於非緩衝通道:spa

「從通道接收數據」的操做 必定會在 「向通道發送數據」的操做完成前發生。
code

2.對於緩衝通道:get

「向通道發送數據」操做 必定會在 「從通道接收數據」的操做完成前發生。string

相關文章
相關標籤/搜索