Go 期刊四

84 阅读1分钟

Go语言爱好者周刊: 一道不一样的题目

不一样的Go

Go 共享内存通信

Go的并发原语:goroutines和channels即协程和通道,提供了一种优雅、独特的方式来构建并发程序。相比明确地使用锁来共享数据,Go鼓励通过channel来传递数据或数据的引用。通过这样的方式,来保证同一时间只有一个协程获得数据。在Effective Go中是这样说的:不要通过共享内存来通信,而是通过通信来共享内存

Uber工程师对真实世界并发问题的研究

整体来看,锁的误用是最大的数据竞争的原因。并发访问slice和map也是很常见的数据竞争的原因。

Go 好库推荐

如何快速找到 Goroutine 泄露的地方

今天给大家推荐一个好物,定位为纯介绍。他来自 Uber 的 Goroutine leak detector, 他能够结合单元测试去快速的检测 goroutine 泄露,达到避免和排查的目的。

Go:gRPC-Gateway 完全指南 (已被开发框架VEGA2-GO采用)

gRPC-Gateway 是一个插件,它为 gRPC 服务生成反向代理服务器,将 Restful/JSON 转换为 gRPC,反之亦然。换句话说,gRPC-Gateway 将在你的 gRPC 服务上创建一个层,该层将充当客户端的 Restful/JSON 服务。gRPC-Gateway 从 gRPC 服务的 Protocol Buffer 的定义生成代码。