登录
首页 >  Golang >  Go问答

golang 无缓冲channel的死锁问题?

来源:SegmentFault

时间:2023-01-14 12:58:43 122浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《golang 无缓冲channel的死锁问题?》,主要介绍了channel、go、死锁,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

package main

import "fmt"

func main() {
    // 初始化channel
    // channel在使用之前,必须进行make初始化
    // 否则,它会是一个nil
    ch := make(chan int)

    // fmt.Println(ch)

    // 输出channel
    go func() {
        fmt.Println(

这样运行是ok的。为什么把ch

    fmt.Println(

正确答案

无缓冲通道,在没有取之前会一直会阻塞。写在go func() 前,main方法阻塞,无法执行到go func(),ch永远不会被取数据,所以造成了死锁。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>