02|内有乾坤:Go语言六大基础知识体系
语法特性
defer
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了Go语言的基础知识体系,包括语法特性和并发编程。在语法特性部分,重点介绍了defer、接口的基本用法和应用场景,以及接口的动态调用方式、嵌套、类型断言等知识点。并发编程部分则着重介绍了协程与通道的基本使用方式,以及传统的同步原语和Go语言提供的同步工具。此外,还提到了Go的依赖管理经历了长时间的演进,现如今Go Module已成为依赖管理的事实标准。文章还介绍了面向组合的设计哲学,以及Go语言的工具与库,包括代码分析与代码规范、代码测试等方面的工具。总的来说,本文通过详细介绍Go语言的基础知识体系,为读者提供了快速了解Go语言技术特点的概览。文章还介绍了一些常用的程序分析与调试的工具,如dlv、gdb、pprof、trace和gops,以及Go语言的标准库和第三方库。文章内容丰富,涵盖了Go语言的基础知识和相关工具,适合读者快速了解Go语言的技术特点。
《Go 进阶 · 分布式爬虫实战》,新⼈⾸单¥68
全部留言(14)
- 最新
- 精选
- G55通过共享内存通信相当于双方必须依靠额外的控制机制来确保通信时内存中的内容是正确的,这一点需要共享双方设置同步机制,并不通用, 还容易有bug。但是通过通信共享内存则可以利用通用的通信基建, 凡是经过通信传递的信息一定是发送方确认正确的, 接收方只需要等待即可, 不用再依赖额外的同步机制,减少了出bug的机会。
作者回复: 说得很好,通道一种所有权转移的机制,为我们屏蔽了锁等机制。 通过一些简单的并发模型(例如fan-in、fan-out),开发并行程序会变得非常容易
2022-10-13归属地:北京14 - 陈卧虫个人理解,内存是信息的载体,共享内存的目的就是为了传递信息,而共享内存只是传递信息的一种手段。共享内存的特点是信息存一块公共的内存区域的,每个线程主动来获取并竞争它的使用权,这个过程中就必须通过加锁来保证原子性。通过通信(channel)来共享内存,就是将线程的主动竞争变为了只能被动等待,接收信息,而消息只会传递给其中一个线程,谁拥有消息(从channel中获得),谁就拥有修改权,这样整个过程就不需要加锁。
作者回复: 👍🏻这种所有权转移的机制非常妙哈,其实是通道为我们屏蔽了一些细节,非常有表现力
2022-10-12归属地:北京10 - 那时刻并行指的是同时做很多事情,并发是指同时管理很多事情。请问老师,管理和做具体区别是什么?
作者回复: 同时管理很多事情指的是这些事情可能不是同时发生的,也不知道发生的先后顺序,但是通过一些调度让他们都有执行的机会。 而并行指的是当前时刻,事情同时在发生。 并发和并行是需要梳理的经典概念,CPU核心数量对应了能够并行执行的数量。但是一个机器上可能有上千上万的线程、协程在等待执行,他们其实是并发的
2022-10-13归属地:北京9 - 会飞的大象关于理解 ”不要通过共享内存来通信,通过通信来共享内存“ 这句话,个人理解,这是两种并发场景下的不同通信方式,本质都是为了达到共享信息的目的,而通过通信来共享内存,是为了解决共享内存机制本身在使用时带来的数据冲突和规避实现复杂度问题,两种方式的不同点在于,共享内存是通过主动读写同一块内存,而通信是被动接收消息及内容(有点类似消息队列)
作者回复: 👏🏻👏🏻
2022-10-23归属地:北京4 - 范飞扬“不要通过共享内存来通信,通过通信来共享内存” 我老是觉得这是病句,因为按照常人的理解,“不要通过共享内存来通信”的下一句应该是“要通过XXX来通信”。那么这里的XXX是什么呢?还请老师解惑呀
作者回复: 指的就是通信,即通道这种所有权转移的机制
2022-10-30归属地:北京22 - 陈卧虫老师讲的所有权转移和rust中所有权类似吗
作者回复: 不太一样哦,通道的所有权是为了解决并发安全,而rust中所有权是为了解决内存的泄露。通道的所有权底层是运行时用锁实现的,rust中所有权是借助编译器实现的
2022-10-15归属地:北京2 - 温雅小公子太贴心了吧,还有视频。
作者回复: 😁哈哈,我后面有时间了还会陆续更新视频,现在全力搞专栏
2022-10-12归属地:北京32 - includestdio.h想问下老师B站的视频完结了吗,我看好久没更新了 go 入门入了快一年了,看过各种 go 专栏和书籍,但是苦于没有实操经验,一直停留在理论,理论也是边学边忘,希望通过这门进阶课入门 -.-
作者回复: 那是一个入门视频,现在我的尽力都在专栏上面,空了也会更新的哦。 其实看专栏就很好了呀,知识都凝聚在专栏了哦,其他的可作为参考资料
2022-10-14归属地:北京1 - Geek_b4e7f6新手报到
作者回复: 冲鸭!
2022-10-14归属地:北京1 - 范飞扬感谢老师,很好的总结!2022-10-30归属地:上海2