GO channel

GO语言并发模型CSP: 提倡 通过通信共享内存,而非通过共享内存实现通信

如果说 goroutine是Go程序并发的执行体, channel就是它们之间的连接。 channel是可以让一个 goroutine发送特定值到另一个 goroutine的通信机制

关闭后任然可以读取

执行:

1 true
2 true
0 false

# 无缓冲通道导致异常

执行:fatal error: all goroutines are asleep – deadlock!

原因:ch := make(chan int) 创建的是无缓冲通道,只有在有地接收值时才会发送成功。

# 通道无空间,继续读取

执行:fatal error: all goroutines are asleep – deadlock!

# 关闭后,任往通道发送

执行:

panic: send on closed channel

执行:

接收成功: 10
发送成功

执行:

发送成功

问题:当发送到chan大于其长度,并且没有消费时,造成死锁

执行:

fatal error: all goroutines are asleep – deadlock!

读取对通道a中的数字,在通道b中平方

执行:

0
1
4
9
16

Original: https://www.cnblogs.com/kaituorensheng/p/15863621.html
Author: jihite
Title: GO channel

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/549024/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 防止表单重复提交思路分析

    出现重复提交的场景一般是在网速比较慢,服务器返回时间较长,导致用户以为没有提交成功或者习惯性的多点几次提交按钮。开发中必须杜绝重复提交问题。 一、出现重复提交表单的场景 场景一:在…

    技术杂谈 2023年7月11日
    085
  • Jenkins中插件 pipeline 中声明式流水线的语法

    声明性Pipeline 声明性Pipeline是Jenkins Pipeline 的一个相对较新的补充, 它在Pipeline子系统之上提出了一种更为简化和有意义的语法。 所有有效…

    技术杂谈 2023年5月31日
    064
  • 一文看懂 ZooKeeper ,面试再也不用背八股

    ZooKeeper知识点总结 一、ZooKeeper 的工作机制 二、ZooKeeper 中的 ZAB 协议 三、数据模型与监听器 四、ZooKeeper 的选举机制和流程 本文将…

    技术杂谈 2023年7月25日
    087
  • [转帖]Instrument API介绍

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年5月30日
    0109
  • antd table之disabled的复选框被选中了?

    使用antd 的table实现多选功能,具体功能如下: 复选框按需&a…

    技术杂谈 2023年5月31日
    087
  • GIT使用说明

    1、Git入门教程 1.1:Git入门与使用 (一) Git介绍与安装 1.2:Git入门与使用 (二) Git相关命令的介绍与使用 1.3:Git入门与使用 (三) 使用GitH…

    技术杂谈 2023年6月21日
    067
  • Redis管理及监控工具推荐

    推荐一款Redis管理软件。【官网 http://www.redisant.cn/】 功能描述: 键和字段CRUD和glob。 适用于字符串、列表、散列、集合、有序集合。 通过漂亮…

    技术杂谈 2023年7月24日
    058
  • php中的和有什么区别么?

    是短标签是长标签在php的配置文件(php.ini)中有一个short_open_tag的值,开启以后可以使用PHP的短标签:同时,只有开启这个才可以使用 但是这个短标签是不推荐的…

    技术杂谈 2023年5月31日
    071
  • go-select 机制

    select 的用法与 switch 语言非常类似,由 select 开始一个新的选择块,每个选择条件由 case 语句来描述。 与 switch 语句相比,select 有比较多…

    技术杂谈 2023年7月11日
    058
  • 如何使用 Python 实现彩票自由(大乐透)

    前言 有没有小伙伴喜欢买股票的,我自己是不会玩的,不是不想玩,是真的挽不回,只能玩比较简单一点的刮刮乐。虽然我不会买股 票,但是用python分析股票还是简简单单的… …

    技术杂谈 2023年6月21日
    081
  • JavaCV的摄像头实战之七:推流(带声音)

    借助JavaCV,完成本地摄像头和麦克风数据推送到媒体服务器的操作,并用VLC验证 欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://gith…

    技术杂谈 2023年7月11日
    064
  • 开放的智力

    这本书很赞,是教人如何去学习,如何去思考的。 看这本书的时候,我在想我年少的时候怎么没有人和我讨论这些问题。 这本书没有实体书,只有kindle电子书,建议下载kindle阅读软件…

    技术杂谈 2023年5月31日
    0106
  • alertmanger告警输出多个值

    【1】display some metrics value in alert email (1.1)如何在告警中让其显示多个值?且只显示 value 在rule 规则中 group…

    技术杂谈 2023年5月31日
    093
  • 利用rabbitmq异步实现来提升程序处理性能

    近期交易系统出款交易量猛增,从skywalking监控平台查看服务的调用链路(Trace),发现在调用外部三方http接口会耗时将近一半。鉴于出款交易在业务上是异步处理的,所以,商…

    技术杂谈 2023年7月11日
    059
  • JWT基础概念详解

    JWT基础概念详解 JWT介绍 之前我们文章讲过分布式session如何存储,其中就讲到过Token、JWT。首先,我们来回顾一下使用Token进行身份认证。 客户端发送登录请求到…

    技术杂谈 2023年6月21日
    075
  • 单线程的Redis有哪些慢动作?

    前言 为什么 Redis 这么火? 键和值的保存形式? 为什么哈希表操作变慢了? 集合的操作效率? 有哪些数据结构? 不同操作的复杂度? 总结 现在一提到 Redis的第一反应就是…

    技术杂谈 2023年7月23日
    048
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球