Java多线程、并发与性能优化
What you'll learn
- 信心满满地使用Java创造正确、设计巧妙的多线程应用程序
- 获得与现代软件架构和初级线程编程相关的专家级实践知识
- 开发高性能、反应灵敏的应用程序,让用户爱不释手
- 学习使用电脑和Java语言进行并发编程和并行编程
Requirements
- 一台Windows、Mac或Linux电脑
- 安装Java开发工具包(JDK)8或以上版本
- Java编程基础知识
Description
简介
如果有一架喷气式飞机,你会开着它去买菜还是环游世界?
如今,每台电脑和每部手机都拥有强大的计算能力和多个内核,完全可以实现并行。在本课程中,你将踏上学习之旅,掌握所有必备的基础工具,成为一名自信且成功的多线程应用程序开发者。通过运用多线程和并发,我们将学习如何最大化利用手头的电脑,让它真正发挥卓越性能!
教学理念
本课程旨在“授人以渔”。我们无须背诵类、库或Java API,而是从最基础的知识学起,一路学到多线程中非常高阶的内容,全面掌握多线程编程的基础知识。
每节课都包含恰当的理论,附有相关领域的实战案例,例如:
l 用户界面应用
l 图像处理
l 网络应用
l 计算程序
l 其他
这是一门十分实用且省时的课程。我没有选用长篇累牍的材料,而是根据自身的实战经验,精心挑选了最重要的话题。
本课程的目标学员
l 已经具备一定的Java编程经验和基础知识。
l 希望在短期内掌握多线程、并行编程和并发技能。
l 对性能优化感兴趣,并在上述领域具备扎实的基础。
l 想让事业更上一层楼。无论你是
l 应届毕业生,想找一份理想的工作;
l 专业工程师,想成为更加优秀的程序员并提高个人技能;
l 或自由职业者,想开发个人项目,期望学会编写高效的多线程代码。
那么,这门课就是为你量身定做!
个人简介
我对多线程和并发的热情始于大学期间。当时,我参与了一个由IBM公司赞助的高度可扩展分布式B+树研究项目。
后来,我在英特尔公司担任计算机架构工程师,又在其他公司担任软件工程师,开发了许多运用高效和优化的多线程代码的应用程序和功能,为教育、医疗保健、增强现实和广告技术提供实时的视频、音频和数据。
如今,我是一名首席软件工程师和软件架构师。培训和指导不同层级的工程师既是我的工作职责,也是我的热情所在。
学习内容
l 操作系统的基础知识,以及使用多线程和并发的原因。
l 多线程的基础知识,包括如何在Java中创建线程,如何实现Java各线程间的通信。
l 多线程和并行应用程序的性能考量和设计模式,以及优化延迟或吞吐量。
l Java线程间的数据共享。所有缺陷和挑战,以及解决方案和最佳实践。
l 高级无锁算法和数据结构,以提高响应速度和性能。
课程结束后
你将能够:
l 使用Java编写语法正确、反应灵敏、性能良好的多线程应用程序,以满足各种需求和规模。
l 运用最佳实践来设计多线程应用程序、算法和库。
l 掌握并发编程和并行编程知识,为求职面试、工程师日常工作和个人项目提供助力。
现在,让我们一起踏上进阶Java多线程、并发和性能优化的专家之路吧!
常见问题
- “本课程能帮我应对面试吗?”
当然!本课程的重点就是帮助大家熟练掌握多线程和并发,特别是Java多线程。你会学习到所有与Java线程相关的必备知识、面试中经常涉及的Java锁和同步,以及堆和栈内存结构等问题。尽管本课程没有专门针对面试的问题,也无法预测面试问题,但要学习的知识肯定会让你从众多候选人中脱颖而出。
- “本课程涵盖Java所有的线程类和API吗?”
没有。市面上有很多书籍和价格不菲的学术课程,可以涵盖每一种类和API,但需要耗时数月才能学完。此外,甲骨文公司提供优秀的Java文档,涵盖并解释每一种Java多线程API和类。”
这门课程非同一般!
基于在该领域的多年经验,我精心设计了一门短期课程,可以在短时间内教给你所有的必备知识。
全是干货!再也不用浪费时间学习5分钟内就能自行读懂或根本无需了解的内容!
本课程将带领大家夯实基础,不仅助你成为多线程和并发专家,还能在未来轻松有效地拓展知识。
- “如果我听课时有不懂的地方,有疑惑,该怎么办?”
别担心!我就是来帮你的!多线程的内容并不简单,并不会要求大家马上就学会。每节课都会设置问答环节,学生可以就课堂内容或任何相关后续问题进行提问。我作为老师,会及时回答所有问题,确保你顺利掌握所有知识。
- “本课程涵盖进程间通信和分布式系统吗?”
不包含。虽然进程间通信和分布式系统都涉及并发,而且是十分有趣和重要的话题,但它们与本课程的主要内容即Java多线程并非直接相关。我们的确会在课程中有所提及,但进程间通信和分布式系统超出了教学范围,需要单独开设课程进行讲解。这些概念、用例和挑战不同于我们在优化单个多线程Java应用程序、算法或库的性能时所提及的内容,所以不会在本课程中讨论。
- “为什么我要单独学一门并发编程课?”
并发编程与传统顺序编程有根本性的区别。与每个工程决策一样,我们总需要做出取舍。并行编程和并发编程可以对应用程序的性能和响应速度产生十分积极的影响,但想要做好却相当困难。在本课程中,我们会了解所有的注意事项、技术和最佳实践,从而完全掌握Java的多线程应用程序。
Who this course is for:
- 希望学习多线程编程和并发的学生
- 希望开发质量一流、性能卓越软件的学生
- 希望追求事业进步,成为真正专家的工程师
- 希望在众人中脱颖而出,找到理想工作的在校大学生和应届毕业生
Instructors
Michael Pogrebinsky is an experienced software engineer and software architect.
In his professional career, he has developed numerous flagship products and has worked on cutting-edge solutions and technologies for companies like Google, Intel, and many others.
He is primarily interested in real-time and high-scale software and demonstrated his technical leadership skills working at many leading companies in their fields.
He is also programming language and technology agnostic and his teaching methods emphasize understanding the core fundamentals and developing the right way of thinking and good practices.
His passion for technology made him a good mentor for other engineers and students, and he is excited to share his knowledge and experience here at Udemy.
专业语言服务团队,专注科技、教育、金融、国际关系与文化艺术领域。源于北京外国语大学,提供多语种口笔译、课程本地化、多媒体听录与视频制作、创意文案翻译等翻译相关语言和技术服务。
团队深受联合国等国际组织、国家部委、知名企事业单位及顶尖高校信赖。