> For the complete documentation index, see [llms.txt](https://wskdsgcf.gitbook.io/mastering-go-zh-cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wskdsgcf.gitbook.io/mastering-go-zh-cn/10.0/10.10.md).

# 10.10 本章小结

这章解决了许多关于 goroutine 的重要主题。然而，主要的是阐明 `select` 语句的作用。另外是说明 `context` 标准包的使用。

由于 `select` 语句的功能，通道是非常好的 Go 方式来互连 Go 程序的组件。

并发程序又许多规则；但是，最重要的规则是您应该避免共享，除非有万不得已的情况。并发程序中，共享数据是所有 bug 的根本原因。

从这章您必须记住尽管共享内存是在同一个进程的线程之上交换数据的唯一方法，但 Go 提供了更好的方法给每个 goroutine 来通信。因此，在你的代码里使用共享内存前，考虑一下 Go 的语法。虽然如此，如果您真的不得不使用共享内存，您可能会考虑使用监视 goroutine 来代替。

下章的主要话题是代码测试，代码优化和代码分析。除了这些主题，您会了解到基准测试，交叉编译和找出隐藏代码。

下章的最后，您也会了解到怎样文档化您的代码并使用 `godoc` 工具生成 HTML 输出。
