美文网首页
通过channel实现同步和数据交互

通过channel实现同步和数据交互

作者: 测试探索 | 来源:发表于2020-08-10 06:29 被阅读0次
package main

import (
    "fmt"
    "time"
)

func main() {
    //创建channel
    ch := make(chan string)

    defer fmt.Println("主协程也结束")

    go func() {
        defer fmt.Println("子协程调用完毕")

        for i := 0; i < 2; i++ {
            fmt.Println("子协程 i = ", i)
            time.Sleep(time.Second)
        }

        ch <- "我是子协程,我工作完毕"
    }()

    str := <-ch //没有数据前,阻塞
    fmt.Println("str = ", str)

}

#结果
子协程 i =  0
子协程 i =  1
子协程调用完毕
str =  我是子协程,我工作完毕
主协程也结束
流程图

相关文章

网友评论

      本文标题:通过channel实现同步和数据交互

      本文链接:https://www.haomeiwen.com/subject/wuwrdktx.html