Channel关闭原则
不要在消费端关闭channel,不要在有多个并行的生产者时对channel执行关闭操作。
也就是说应该只在[唯一的或者最后唯一剩下]的生产者协程中关闭channel,来通知消费者已经没有值可以继续读了。只要坚持这个原则,就可以确保向一个已经关闭的channel发送数据的情况不可能发生。
有时我会被问到“你为什么喜欢使用Go?” 我经常提到的一件事是作为go
命令的一部分与语言一起存在的周到工具。我每天都会使用一些工具(例如go fmt
和)go build
,而其他类似工具go tool pprof
仅用于帮助解决特定问题。但是在所有情况下,我都很欣赏它们使我的项目管理和维护更加容易的事实。
在今年的大部分时间里,我一直在 Orbs 团队用 Go 语言做可扩展的区块链的基础设施开发,这是令人兴奋的一年。在 2018 年的时候,我们研究我们的区块链该选择哪种语言实现。因为我们知道 Go 拥有一个良好的社区和一个非常棒的工具集,所以我们选择了 Go。
最近几周,我们进入了系统整合的最后阶段。与任何大型系统一样,可能会在后期阶段出现一些问题,包括性能问题,内存泄漏等。当整合系统时,我们找到了一个不错的方法。在本文中,我将介绍如何调查 Go 中的内存泄漏,详细说明寻找,理解和解决它的步骤。
Update your browser to view this website correctly. Update my browser now