• golang channel状态表


    如果我们查看该表,可以察觉到在操作中可能产生问题的地方。这里有三个可能导致阻塞的操作,以及三 个可能导致程序恐慌的操作。

    乍看之下,通道的使用上限制很多,但在检查了这个限制产生的动机并熟悉 了通道的使用后,它变得不那么可怕并开始具有很大意义。

    让我们讨论如何组织不同类型的通道来构筑稳 健的程序。 我们应该做的第一件事是将通道置于正确的环境中,即分配通道所有权。

    我将所有权定义为goroutine的 实例化,写入和关闭。就像在那些没有垃圾回收的语言中使用内存一样,重要的是要明确哪个goroutine 拥有该通道,以便从逻辑上推理我们的程序。

    单向通道声明是一种工具,它可以让我们区分哪些 gouroutine拥有通道,哪些goroutine仅使用通道:通道所有者对通道具有写入访问权(chan或chan<- ),而通道使用者仅具有读取权(<-chan)。

    一旦我们对通道权责区分,上表的结果自然就会出现。

    我 们可以开始对拥有通道和不拥有通道的goroutine赋予不同的责任并给予对应的检查(以增强程序和逻辑的 健壮性)。

  • 相关阅读:
    CSS——制作天天生鲜主页
    HTML——制作一个图片列表
    HTML——制作一个简易菜单栏
    CSS——三种页面引入方法
    【20170903】模拟赛
    【LA 3942】 Remember the word
    【BZOJ 1036】 树的统计count
    UVA 12299 RMQ with shifts
    【20170706】次短路
    【20170706】保卫萝卜
  • 原文地址:https://www.cnblogs.com/fly-kaka/p/10190857.html
Copyright © 2020-2023  润新知