掌握Go (Golang)的多线程编程技术 | Mastering Multithreading Programming with Go (Golang)

Mastering Multithreading Programming with Go (Golang)

通过 Google 的 GoLang 实用有趣的示例了解多线程、并发和并行编程。

你将会学到的

  • 了解如何创建响应迅速的高性能软件。
  • 了解如何使用多线程对某些类型的问题和模拟进行建模。
  • 使用 Golang 开发高度并发和并行的程序。
  • 了解并行计算的优点、限制和属性。
  • 通过更高级的多线程主题提高您的 Go 编程技能。
  • 了解 goroutine、互斥锁、读写器锁、等待组、通道、条件变量等。

要求

  • 一些 Go 编程经验(如果你知道如何使用函数、循环、数组和一些指针就足够了)。
  • 安装了最新版本的 Go。
  • 能够做 50 个俯卧撑,同时对每个代表大喊一个独特的质数(开玩笑)。

说明

在一家国际投行12楼的会议上,气氛低落到极点。在关键核心应用程序出现故障并导致系统范围中断后,该公司的开发人员开会讨论了最佳前进方向。

“伙计们,我们这里有一个严重的问题。我发现中断是由我们代码中的竞争条件引起的,前一段时间引入并于昨晚触发。” 高级开发人员 Mark Adams 说。

房间安静下来。落地窗外的车子,在繁华的城市车流中缓缓、无声地蠕动着。高级开发人员立即了解情况的严重性,意识到他们现在将全天候工作以解决问题并整理数据存储中的混乱情况。经验不足的开发人员知道竞争条件很严重,但不知道到底是什么原因导致的,因此他们会闭嘴。

最终,交付经理 Brian Holmes 打破了沉默,“应用程序已经运行了几个月没有任何问题,我们最近没有发布任何代码,软件怎么可能就这样崩溃了?!”

每个人都摇头,然后回到他们的办公桌前,留下布赖恩一个人在房间里,一脸困惑。他拿出手机并在谷歌上搜索“比赛条件”。

听起来有点熟?有多少次您听到其他开发人员谈论使用线程和并发编程来解决特定问题,但出于恐惧您却置身于讨论之外?

这是高级开发人员永远不会分享的小秘密……多线程编程并不比普通编程难多少。开发人员害怕并发编程,因为他们认为这是一个只有经验丰富的开发人员才能玩的高级主题。

这远非真相。我们的头脑非常习惯于处理并发。事实上,我们在日常生活中这样做没有任何问题,但不知何故,我们很难将其转化为我们的代码。原因之一是我们不熟悉可用于管理这种并发性的概念和工具。本课程旨在帮助您了解如何使用多线程工具和概念来管理并行编程。它的设计尽可能实用。我们从一些关于并行性的理论开始,然后解释操作系统如何处理多个进程和线程。稍后,我们将继续通过使用多线程解决示例问题来解释可用的多种工具。

在本课程中,我们使用 Google 的 Go 编程语言及其 goroutines,但是这里学到的概念可以应用于大多数编程语言。

本课程中的所有代码都可以在github上找到,用户名/项目:cutajarj/multithreadingingo

此课程面向哪些人:

  • 希望通过提高技能和学习并发多线程编程将自己的职业提升到一个新水平的开发人员。
  • 目前正在学习并行计算的大学生想要了解课堂上学到的概念如何与实践相关联。
  • 最近开始使用 Go 并希望发现可用的多线程工具的有经验的开发人员。
  • 送货经理叫布赖恩·霍姆斯。
声明:本站所有资源、素材等全部来源于互联网,赞助VIP仅用于对IT资源服务器带宽等费用支出做支持,从本站下载资源,说明你已同意本条款。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
TheItzy » 掌握Go (Golang)的多线程编程技术 | Mastering Multithreading Programming with Go (Golang)