掌握 Java 中的并行计算和多线程
通过 Java 中实用且有趣的示例探索多线程、并发和并行编程
讲师:James Cutajar
口袋资源独家Udemy付费课程,独家中英文字幕,配套资料齐全!
用不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。
你将学到什么
- 了解如何创建响应灵敏且高性能的软件。
- 了解如何使用多线程和多处理来建模某些类型的问题。
- 使用 Java 开发高度并发和并行的程序。
- 了解并行计算的优点、限制和属性。
- 通过更高级的多线程主题提高您的 Java 编程技能。
- 了解线程、进程、互斥锁、屏障、等待组、队列、条件变量、死锁、自旋锁等。
要求
- 有一些Java编程经验。如果您知道如何使用 java 常见集合(映射和列表)并具有使用匿名函数的基本知识,这将会有所帮助。
- 安装了最新版本的 Java。
- 能够做 150 个仰卧起坐,同时反向喊出斐波那契数列,每次重复 1 个(开个玩笑)。
描述
在一家国际投行的12楼举行的会议上,会议气氛极其阴郁。该公司的开发人员开会讨论在关键核心应用程序失败并导致系统范围中断后的最佳解决方案。
“伙计们,我们这里遇到了一个严重的问题。我发现中断是由我们代码中的竞争条件引起的,该竞争条件是不久前引入的,并于昨晚触发。” 高级开发人员马克·亚当斯 (Mark Adams) 说道。
房间里一片寂静。落地窗外的汽车在繁忙的城市交通中缓慢而无声地蠕动。高级开发人员立即了解了情况的严重性,意识到他们现在将全天候工作以解决问题并整理数据存储中的混乱情况。经验不足的开发人员知道竞争条件很严重,但不知道到底是什么原因导致的,因此他们保持沉默。
最终,交付经理 Brian Holmes 打破了沉默,“应用程序已经运行了几个月,没有任何问题,我们最近没有发布任何代码,软件怎么可能就崩溃了?!”
每个人都摇摇头,回到自己的办公桌前,留下布莱恩独自留在房间里,一脸困惑。他拿出手机,用谷歌搜索“竞赛条件”。
听起来有点熟?有多少次您听到其他开发人员谈论使用线程和并发编程来解决特定问题,但由于害怕而您没有参与讨论?
这是高级开发人员永远不会分享的小秘密… 多线程和多处理编程并不比普通编程难多少。开发人员害怕并发编程,因为他们认为这是一个高级主题,只有经验丰富的开发人员才能使用。
这远非真相。我们的思维非常习惯于处理并发性。事实上,我们在日常生活中这样做没有任何问题,但不知何故,我们很难将其转化为我们的代码。原因之一是我们不熟悉可用于管理这种并发的概念和工具。本课程旨在帮助您了解如何使用多线程和多处理工具和概念来管理并行编程。它的设计尽可能实用。我们从一些有关并行性的理论开始,然后解释操作系统如何处理多个进程和线程。稍后我们将通过使用并发编程解决示例问题来解释可用的多种工具。
在本课程中,我们使用 Java 语言,但是这里学到的概念可以应用于大多数编程语言。
本课程的所有代码都可以在github上找到,用户名/项目:cutajarj/multithreadinginjava
本课程适合谁:
- 希望通过提高技能和学习并发和并行编程来将自己的职业生涯提升到新水平的开发人员。
- 目前正在学习并行计算的大学生希望了解课堂上学到的概念如何与实践相关。
- 经验丰富的开发人员曾在这个主题上苦苦挣扎,并希望使用不同的方法再次尝试。
- 交付经理打电话给布莱恩·霍姆斯。