《Go程序员面试笔试宝典》第四章 · 通道书评

8月20日下午,我收到了《Go程序员面试笔试宝典》,看封面的第一感觉是和奇安信联系起来了。特别纸张质量感觉十分不错,排版也比较合理,看起来很舒服,特别是干货特别多,全是干货!

在这里插入图片描述

书里全是满满的干货,一读起来便停不下来了。

第一部分名字是语言基础,该部分主要介绍了逃逸分析、延迟语句、数据容器、通道和接口。我着重阅读了第4章——通道。

Go有一句经典名言:“不要通过共享内存来通信,而要通过通信来实现内存共享”。这时候通道channel的重要性就体现出来了。

该章第一节讲述了CSP与Go语言的关系。Go语言进一步将CSP发扬光大,一开始就把CSP的思想融入语言的核心,所以并发编程成为Go的一个优势。

该章第二节讲述了channel有哪些应用:

1.我们可以通过关闭channel或发送约定的标志来发送停止信号。

2.通过与timer、select、ticker等实现超时控制以及执行定时任务。

3.实现生产者消费者模型。

4.控制并发数,因为channel可以自定义容量,通过channel内的“东西”数量来控制并发数。

该章第三节介绍了通道的底结构:

先是介绍了通道的底层数据结构,重点讲了几个字段的含义。

然后通过源码解读了通道的创建过程、接收过程、发送过程。这部分详细的解读了源码,可以说是手把手,可是我感觉我有些地方还是没完全懂。

该章第四节讲述了通道的关闭过程发生了什么。关闭channel的逻辑比较简单,对于等待接收者,会收到应该相应类型的零值,而对于等待发送者,会直接panic。

该章第五节是介绍从一个关闭的通道里面能不能够读出数据。答案是不能。

该章第六节是教会我们如何优雅的关闭通道。当N个sender和1个receiver时,我们可以利用一个信号channel来关闭sender,然后GC会清理没有被协程调用的channel。当N个sender和M个receiver时,启用一个“中间人”将receive的所有关闭信号都给这个中间人,这个中间人只要收到第一个关闭信号,就像所有sender发送关闭信号,这样就不会导致sender被多个receive重复关闭。

该章第七节介绍了一个我之前没有听说过的概念——“happens-before”,channel的设计就遵守这个概念。

该章第八节讲述了通道在什么情况下会引起资源泄漏——就是携程在管道被阻塞了,然后管道一直是空的或满的,GC不会回收这个channel,这个协程就一直阻塞在这了。

该章第九节介绍了通道的几种操作和panic的几种情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
本书针对当前各大it企业面试笔试中常见的问题以及注意事项,进行了深层次的分析。本书除了对传统的计算机相关知识(c/c++、数据结构与算法、操作系统、计算机网络与通信、软件工程、数据库、智力题、英语面试等)进行介绍外,还根据当前计算机技术的发展潮流,对面试笔试中常见的海量数据处理进行了详细的分析。同时,为了更具说服力,本书特邀多位it名企面试官现身说法,对面试过程中求职者存在的问题进行了深度剖析,同时本书引入了一批来自于名牌高校、就职于明星企业的职场达人的真实求职案例,通过他们的求职经验与教训,抛砖引玉,将整个求职过程生动形象地展示在读者面前,进而对求职者起到一定的指引作用。本书也对各种类型的it企业的招聘环节进行了庖丁解牛式的分析,帮助求职者能够更加有针对性地 进行求职准备。 本书是一本计算机相关专业毕业生面试笔试的求职用书,同时也适合期望在计算机软硬件行业大显身手的计算机爱好者阅读。 程序员面试笔试 目录 前言 上篇 面试笔试经验技巧篇 第1章 面试官箴言 2 第2章 面试心得交流 9 第3章 企业面试笔试攻略 20 第4章 面试笔试技巧 42 第5章 英文面试攻略 82 第6章 智力题攻略 102 下篇 面试笔试技术攻克篇 第7章 程序设计基础 122 第8章 数据库 240 第9章 网络与通信 254 第10章 操作系统 270 第11章 软件工程 278 第12章 发散思维 289 第13章 数据结构与算法 295 第14章 海量数据处理 390
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReganYue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值