chan

作者: 大小说家_f47f | 来源:发表于2019-09-30 11:40 被阅读0次

1.主协程只负责调用子协程,但是不会被子协程阻塞

2.在主协程中,无缓冲的chan需要输入输出成对出现,否则会死锁

3.select 特殊处理可以阻止死锁的发生,或者使用缓冲chan

4.主协程读取空的chan(若果永远没有输入-死锁,如果子协程有输入-正常)

package main

import (

    "fmt"

    "time"

)

var send = make(chan string,1)

func goroutine2(){

    fmt.Println(111)

    time.Sleep(5000*time.Millisecond)

    send <- "sss"

}

func main() {

    fmt.Println("Hello Golang")

    go goroutine2()

     fmt.Println(<- send)

}

相关文章

  • Go 基础 4:channel拔高 和 select

    先说这个buffered chan就是在创建chan的时候加上个chan buffer的大小 基本的chan在se...

  • Chan

    梦已入睡 渡人自渡 渡一生莲花 …… 十里桃花 待嫁的年华 悠悠风来 埋在三生石下 …… 倘若我心中的如来 你眼中...

  • chan

    1.主协程只负责调用子协程,但是不会被子协程阻塞 2.在主协程中,无缓冲的chan需要输入输出成对出现,否则会死锁...

  • chan

    chan 不带缓存 make(chan 数据类型) 进和出都会阻塞. 读和写同时存在,才会同时退出阻塞。如果只...

  • chan

    你不能每天这么chan我的 我心里咯噔了一下 原来我已经这么缠你了吗 你不喜欢我缠了啊 每次看着好吃的我又吃不到 ...

  • 书画禅---尹同君书法作品之一(中英双语)

    书画禅 Shu Hua Chan Chan Meditation with calligraphy and pai...

  • 2018-05-18

    var nilCh chan intfmt.Println(nilCh)ch := make(chan error...

  • chan深入理解之源码分析

    chan的理解 chan用于协程间通信,结构体如下,代码位置为go/src/runtime/chan.go 从结构...

  • Go中的chan

    go中的chan是动态的,因此千万不要把chan想象成slice切片类型的数据。 只要chan不close可以永远...

  • Go并发模型:并发协程chan的优雅退出

    Go并发模型:并发协程chan的优雅退出 go chan的使用

网友评论

      本文标题:chan

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