独家Udemy付费课程,中英文字幕,课程资料包齐全!
用不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。
你将会学到的
- 了解如何创建响应迅速的高性能软件。
- 了解如何使用多线程对某些类型的问题和模拟进行建模。
- 使用 Golang 开发高度并发和并行的程序。
- 了解并行计算的优点、限制和属性。
- 通过更高级的多线程主题提高你的 Go 编程技能。
- 了解 goroutine、互斥锁、读写器锁、等待组、通道、条件变量等。
课程内容
10 个章节 • 47 个讲座 • 总时长 5 小时 24 分钟展开所有章节
介绍3 个讲座 • 11 分钟
创建和使用线程7 个讲座 • 50 分钟
使用互斥锁的线程同步5 个讲座 • 35 分钟
等待完成的任务2 个讲座 • 15 分钟
使用 Channels 传递消息6 个讲座 • 45 分钟
使用条件变量进行同步4 个讲座 • 30 分钟
死锁8 个讲座 • 53 分钟
障碍3 个讲座 • 24 分钟
原子变量4 个讲座 • 26 分钟
旋转锁5 个讲座 • 37 分钟
要求
- 一些 Go 编程经验(如果你知道如何使用函数、循环、数组和一点指针就足够了)。
- 安装了最新版本的 Go。
- 能够做 50 个俯卧撑,同时在每个代表上喊出一个独特的素数(开个玩笑)。
说明
一家国际投行12楼开会,气氛十分凄凉。该公司的开发人员开会讨论在关键核心应用程序失败并导致系统范围中断后的最佳前进方式。
“伙计们,我们这里有一个严重的问题。我发现中断是由我们的代码中的竞争条件引起的,它是前段时间引入并在昨晚触发的。” 高级开发人员 Mark Adams 说。
房间里一片寂静。落地窗外的汽车在繁忙的城市交通中缓慢而无声地爬行。高级开发人员立即了解情况的严重性,意识到他们现在将全天候工作以解决问题并整理数据存储中的混乱。经验不足的开发人员知道竞态条件很严重,但不知道究竟是什么原因造成的,因此闭嘴。
最终,交付经理 Brian Holmes 打破沉默,“该应用程序已经运行了几个月没有任何问题,我们最近没有发布任何代码,软件怎么可能只是崩溃了?!”
每个人都摇了摇头,回到自己的办公桌前,留下Brian一个人在房间里,一头雾水。他拿出手机,在谷歌上搜索“比赛条件”。
听起来有点熟?你有多少次听到其他开发人员谈论使用线程和并发编程来解决特定问题,但由于害怕你没有参与讨论?
这是高级开发人员永远不会分享的小秘密……多线程编程并不比普通编程难多少。开发人员害怕并发编程,因为他们认为这是一个只有经验丰富的开发人员才能玩的高级主题。
这远非真相。我们的大脑非常习惯于处理并发。事实上,我们在日常生活中这样做没有任何问题,但不知何故,我们很难将其转化为我们的代码。造成这种情况的原因之一是我们不熟悉可用于管理这种并发性的概念和工具。本课程旨在帮助你了解如何使用多线程工具和概念来管理并行编程。它被设计为尽可能实用。我们从一些关于并行性的理论开始,然后解释操作系统如何处理多个进程和线程。稍后我们将通过使用多线程解决示例问题来解释可用的多种工具。
在本课程中,我们使用 Google 的 Go 编程语言及其 goroutines,但是这里学到的概念可以应用于大多数编程语言。
本课程的所有代码都可以在github上找到,用户名/项目:cutajarj/multithreadingingo
此课程面向哪些人:
- 希望通过提高技能和学习并发多线程编程将自己的职业生涯提升到新水平的开发人员。
- 目前正在学习并行计算的大学生,他们希望了解课堂上学到的概念与实践的关系。
- 最近开始使用 Go 并希望发现可用的多线程工具的经验丰富的开发人员。
- 送货经理打电话给布赖恩霍姆斯。