Java 多线程、并发和性能优化
成为 Java 多线程、并发和并行编程方面的专家,并强调高性能
教程演示🔗
What you’ll learn 学习内容
-
Build well designed & correct multithreaded applications in Java, with confidence.
自信地在 Java 中构建设计良好且正确的多线程应用程序。 -
Gain expert-level practical knowledge of modern software architecture & low level programming using Threads
使用线程获得现代软件架构和低级编程的专家级实践知识 -
Create high performance & responsive applications, clients will use and love
创建高性能和响应迅速的应用程序,客户将使用和喜爱 -
Learn to utilize your computer and Java language using Concurrency and Parallel programming
学习使用并发和并行编程来利用您的计算机和 Java 语言
Requirements 要求
-
A Windows, Mac or Linux computer
Windows、Mac 或 Linux 计算机 -
Latest Java Development Kit (JDK) installed
已安装最新的 Java 开发工具包 (JDK) -
Basic knowledge of programming in Java
Java 编程基础知识
Description 描述
[Updated to 2023, including Project Loom and Virtual Threads]
[更新至 2023 年,包括 Project Loom 和虚拟线程]
Description 描述
If you had your own jet plane, would you drive it to the grocery store or fly it on tour around the world?
如果你有自己的喷气式飞机,你会开着它去杂货店还是环游世界?
Today every computer and phone comes with immense computing power and multiple cores, allowing full parallelism. In this course, you will go on a journey to learn all the fundamental tools you need to become a confident and successful multithreaded application developer. Using multithreading and concurrency, we will learn to get the most out of our computer to truly make it fly!
如今,每台计算机和手机都具有强大的计算能力和多个内核,可实现完全并行。在本课程中,您将踏上学习成为自信和成功的多线程应用程序开发人员所需的所有基本工具的旅程。使用多线程和并发,我们将学会充分利用我们的计算机,真正让它飞起来!
Teaching Philosophy 教学理念
The course is designed to teach you “how to fish”. Instead of memorizing classes, libraries, or Java APIs, we will learn the fundamentals of multithreaded programming, starting from the complete basics all the way to the very advanced topics in multithreading.
该课程旨在教您“如何钓鱼”。我们将学习多线程编程的基础知识,而不是记住类、库或 Java API,从完整的基础知识一直到多线程中非常高级的主题。
All lectures include the right theory and are accompanied by practical examples from relevant fields, such as:
所有讲座都包括正确的理论,并附有相关领域的实际例子,例如:
-
User Interface applications
用户界面应用程序 -
Image Processing 图像处理
-
Web Applications Web 应用程序
-
Computational programs 计算程序
-
And others 和其他人
It’s a practical course that is meant to save you time. Instead of filling hours of material, I hand-picked the most important topics based on my practical experience.
这是一门实用的课程,旨在节省您的时间。我没有填满数小时的材料,而是根据我的实践经验精心挑选了最重要的主题。
Target Student for this Course
本课程的目标学生
-
Students who already have some experience and basic knowledge in programming in Java.
已经具备一些 Java 编程经验和基础知识的学生。 -
Students who want to acquire multithreaded, parallel programming and concurrency skills in a short period of time.
希望在短时间内掌握多线程、并行编程和并发技能的学生。 -
Students who are interested in performance optimizations and getting a good foundation in the above-mentioned topics.
对性能优化感兴趣并在上述主题中打下良好基础的学生。 -
Students who want to take their careers to the next level. Whether you are a
希望将自己的职业生涯提升到新水平的学生。无论您是-
Newly graduate and you’re looking to land a dream job.
刚毕业,你正在寻找一份梦寐以求的工作。 -
A professional engineer who wants to become a better programmer and improve your skillset.
一个专业的工程师,想要成为一个更好的程序员,提高你的技能。
-
-
A freelancer who wants to develop his/her own project and is looking to learn how to write efficient multithreaded code.
想要开发自己的项目并希望学习如何编写高效的多线程代码的自由职业者。Then this course is for YOU!
那么这门课程就是为你准备的!
Short Bio 简介
My passion for multithreading and concurrency started in college, where I worked on a highly scalable, distributed B+ Tree research project sponsored by IBM.
我对多线程和并发的热情始于大学,在那里我参与了一个由 IBM 赞助的高度可扩展的分布式 B+ 树研究项目。
Later I worked as a Computer Architecture Engineer at Intel Corporation and as a Software Engineer in other companies, where I developed many applications and features involving efficient and optimized multithreaded code to deliver real-time video, audio, and data – in education, healthcare, augmented reality, and Ad Tech.
后来,我在英特尔公司担任计算机架构工程师,并在其他公司担任软件工程师,在那里我开发了许多应用程序和功能,涉及高效和优化的多线程代码,以提供实时视频、音频和数据 – 在教育、医疗保健、增强现实和广告技术领域。
Today I am a Principal Software Engineer and Software Architect. Training and mentoring engineers on all levels are both my job and my passion.
今天,我是一名首席软件工程师和软件架构师。培训和指导各级工程师既是我的工作,也是我的热情所在。
We will learn 我们将学习
-
Operating Systems fundamentals and motivation for multithreading and concurrency.
操作系统基础知识以及多线程和并发的动机。 -
The basics of multithreading – how to create threads in Java and communicate between threads in Java.
多线程的基础知识 – 如何在 Java 中创建线程并在 Java 中的线程之间进行通信。 -
Performance considerations and design patterns of multithreaded and parallel applications, optimizing for latency or throughput.
多线程和并行应用程序的性能注意事项和设计模式,针对延迟或吞吐量进行优化。 -
Data sharing between threads in Java, all the pitfalls and challenges, as well as the solutions and best practices.
Java 中线程之间的数据共享、所有陷阱和挑战,以及解决方案和最佳实践。 -
Advanced lock-free algorithms and data structures for increased responsiveness and performance.
先进的无锁算法和数据结构,可提高响应速度和性能。
By the End of the Course
课程结束时
You will be able to
您将能够
-
Write correct, responsive, and performant multithreaded applications in Java for any purpose and scale.
使用 Java 编写正确、响应迅速且高性能的多线程应用程序,用于任何目的和规模。 -
Apply best practices to architect multithreaded applications, algorithms, and libraries.
应用最佳实践来构建多线程应用程序、算法和库。 -
Become knowledgeable in concurrency & parallel programming, which will help you in job interviews, your daily work as an engineer, and your personal projects.
掌握并发和并行编程方面的知识,这将有助于您进行工作面试、工程师的日常工作以及您的个人项目。
Become an expert in Java Multithreading, Concurrency, and Performance Optimization today!
立即成为 Java 多线程、并发和性能优化方面的专家!
FAQs 常见问题
– “Will the course help me with interview questions?”
– “这门课程能帮助我解决面试问题吗?”
Yes! The course is focused on helping you become proficient in multithreading and concurrency in general and also master multithreading in Java in particular. You will learn all you need about threads in Java as well as common topics in interview questions involving locking, synchronization in Java, heap and stack memory organization, and so on. Although the course is not focused on interview questions specifically, and there’s no way to predict what you will be asked during an interview question, the knowledge you will get will definitely set you apart from other candidates.
是的!该课程的重点是帮助您精通多线程和并发,特别是掌握 Java 中的多线程。您将学习有关 Java 中线程的所有信息,以及涉及锁定、Java 同步、堆和堆栈内存组织等面试问题的常见主题。虽然该课程并不专门针对面试问题,也无法预测您在面试问题中会被问到什么,但您将获得的知识肯定会让您与其他候选人区分开来。
– “Does the course cover all threading classes and APIs in Java?”
– “这门课程是否涵盖了 Java 中的所有线程类和 API?”
“No. There are many books and expensive academic courses which cover EVERY single class and API which would take months to finish. In addition, Oracle provides excellent Java Docs that cover and explain every single Java multithreading API and class.
“不。有许多书籍和昂贵的学术课程涵盖了需要几个月才能完成的每门课程和 API。此外,Oracle 还提供了出色的 Java 文档,涵盖并解释了每个 Java 多线程 API 和类。
This course is different!
这门课程是不同的!
Based on years of experience in the field, I have carefully designed a short curriculum that teaches you all the essentials in a short amount of time.
根据在该领域多年的经验,我精心设计了一个简短的课程,在短时间内教你所有的基本知识。
No fillers! No more wasting time learning things you could read yourself in 5 minutes or don’t ever need!
没有填充剂!再也不用浪费时间学习您可以在 5 分钟内自己阅读或不需要的东西了!
This course will build the foundation for becoming an expert in multithreading and concurrency. And also be able to successfully and easily extend your own knowledge in the future.
本课程将为成为多线程和并发方面的专家奠定基础。并且还能够在未来成功轻松地扩展自己的知识。
– “What if I don’t understand something during the course and I have a question, what do I do?”
– “如果我在课程中不明白什么,我有问题,我该怎么办?”
Not a problem! I am here to help you succeed! Multithreading is not an easy topic; no one is expected to get it all right away. Each lecture has a Q&A section where students can ask questions about the lecture or any follow-up questions about the topic in general. I will answer all the questions promptly and ensure you have all the tools for success.
没问题!我是来帮你成功的!多线程并不是一个容易的话题;预计没有人会立即得到这一切。每节课都有一个问答部分,学生可以在其中提出有关讲座的问题或有关该主题的任何后续问题。我将及时回答所有问题,并确保您拥有成功的所有工具。
– “Does the course cover interprocess communication and distributed Systems?”
– “该课程是否涵盖进程间通信和分布式系统?”
No. Although those are really interesting and important topics that involve concurrency. They are not directly related to Java multithreading, which is the main topic of the course. We do mention those topics during the course, but they are out of scope and deserve their own course. The concepts, use cases, and challenges are very different than the ones we encounter while optimizing the performance of a single multithreaded Java application, algorithm, or library, so we will not cover them here.
不。尽管这些都是涉及并发的非常有趣和重要的主题。它们与 Java 多线程没有直接关系,而 Java 多线程是本课程的主题。我们确实在课程中提到了这些主题,但它们超出了范围,值得单独学习。这些概念、用例和挑战与我们在优化单个多线程 Java 应用程序、算法或库的性能时遇到的概念、用例和挑战大不相同,因此我们在这里不介绍它们。
– “Why do I need a separate course for concurrent programming?”
– “为什么我需要一门单独的并发编程课程?”
Concurrent programming is fundamentally different than transitional sequential programming. As in every engineering decision, there’s always a tradeoff. Parallel and Concurrent programming can have a tremendous positive impact on the application’s performance and responsiveness but it is a lot harder to get it right. In this course, we will learn all the caveats, techniques, and best practices to get the most out of multithreaded applications in Java.
并发编程与过渡顺序编程有根本的不同。与每个工程决策一样,总需要权衡取舍。并行和并发编程可以对应用程序的性能和响应能力产生巨大的积极影响,但要做到这一点要困难得多。在本课程中,我们将学习所有注意事项、技术和最佳实践,以充分利用 Java 中的多线程应用程序。
Who this course is for:
本课程适用于谁:
- Students who want to learn multithreaded programming and concurrency
想要学习多线程编程和并发的学生 - Students who want to produce the highest quality and highest performance software
想要生产最高质量和最高性能软件的学生 - Engineers who want to take their professional career to new level, and become true experts
希望将自己的职业生涯提升到新水平并成为真正的专家的工程师 - College students and newly graduates, who want to stand out from the crowd, and land their dream job
大学生和应届毕业生,他们希望从人群中脱颖而出,找到他们梦寐以求的工作





