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

相关文章
相关标签/搜索