浏览 36
更新于 2020-08-23 08:44
继续之前
如果你是并发编程的新手,那么看起来似乎都是压倒性的。 它绝对需要非常多的关注。Go旨在让它变得更容易。
Goroutines 有效的抽象了我们需要并发执行的代码。通道帮助消除数据共享时共享数据可能发生的一些严重错误。这不仅可以消除错误, 还可以改变并发编程的方式。你只用考虑通过信息传递实现并发编程,而不是危险的代码区域。
话虽如此,我仍然广泛使用 sync
和 sync / atomic
包中的各种同步原语。我觉得比较重要的是通过使用这两种方式比较舒适。我建议你首先关注通道,但是当你遇到一个需要短暂锁的简单示例时,请考虑使用互斥锁或读写互斥锁。