在学习和使用 Go 语言的过程中,我们不可避免地会遇到一些陷阱和常见的使用错误。这些建议性错误或潜在的问题,有时可能会在代码中悄悄滋生,直到某一天给你带来难以察觉的 bug。为了帮助大家更好地理解和规避这些陷阱,我整理了一些 Go 语言中常见的使用错误,这些建议或许能成为你编写更健壮、可维护代码的助力。
本篇博客旨在提醒读者注意一些在 Go 语言中易犯的错误,不仅包括语法和语义级别的问题,还包括一些最佳实践和规范。通过深入理解这些错误,我们可以更好地规避潜在的风险,写出更高效、更稳定的 Go 代码。
最近读了《Operating Systems: Three Easy Pieces》一书,全书主要围绕虚拟化、并发和持久化这三个主题展开,其中并发部分中介绍锁的章节,行文风趣幽默,写得非常精彩。文中介绍了多种实现锁的方案,以及各种锁的适用场景和优缺点。本文基于该书中锁章节,以一个gopher的角度去分享、拓展书中介绍的锁,并尽量使用Go实现书中介绍的几款自旋锁。