Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Java Multithreading and Parallel Programming Masterclass

Khóa học chuyên sâu về Lập trình Đa luồng và Song song trong Java

Khóa học chuyên sâu về Lập trình Đa luồng và Song song trong Java

Hướng dẫn toàn diện từng bước để học Đa luồng đúng cách

4.7
(72 đánh giá)
1,047 học viên
Giảng viên
Cosmin Ionita
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 349.000đ -86%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
10.0 giờ video
59 bài giảng
3 bài quiz
2 bài coding
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 30/05/2026

Bạn sẽ học được gì

Hiểu tại sao Đa luồng là lợi thế thực sự cho mọi lập trình viên Java
Hiểu các thành phần cơ bản của ứng dụng đa luồng
Hiểu khi nào Đa luồng có thể tăng tốc ứng dụng và khi nào không
Hiểu ảnh hưởng của Hệ điều hành và phần cứng đối với ứng dụng đa luồng
Được xem các ví dụ thực hành, thiết thực, được giải thích sâu sắc cho từng khái niệm
Có thể kết nối các khái niệm học được với dự án thực tế

Yêu cầu

Kiến thức Java OOP cơ bản (lớp, giao diện, phương thức)
Đã cài đặt Java 15 (JDK)
Đã cài đặt Intellij Idea Community Edition (khuyến khích) hoặc bất kỳ IDE Java nào khác

Đối tượng phù hợp

Lập trình viên Java mới bắt đầu muốn nâng cao kỹ năng bằng cách học lập trình đa luồng và song song
Lập trình viên Java muốn học đa luồng đúng cách, theo một chương trình học từng bước bài bản
Bất kỳ lập trình viên nào có kiến thức Java cơ bản, muốn cải thiện hiệu suất ứng dụng bằng cách tận dụng lập trình song song
Sinh viên Khoa học Máy tính / Kỹ thuật / Nghiên cứu sinh Tiến sĩ muốn học đa luồng từ nền tảng

Nội dung khóa học

11 phần • 59 bài giảng
1 Lý do học
2 Cách tận dụng tối đa khóa học này
3 Điều kiện tiên quyết & Tài nguyên mã nguồn
1 Process (Tiến trình) là gì?
2 Thread (Luồng) là gì?
3 So sánh Thread và Process
4 Song song, Đồng thời, Bất đồng bộ và Không chặn
5 Định luật Amdahl
1 Tạo Luồng
2 Mức độ ưu tiên và Trạng thái của Luồng
3 Thực hành với Nhóm Luồng (Thread Groups)
4 Luồng Daemon và Luồng Người dùng
5 Xử lý Ngoại lệ trong Luồng
6 Biến cục bộ của Luồng và Điều kiện Tranh chấp
7 [Dự án] - Xử lý Tệp Văn bản Song song
1 Đồng bộ hóa Luồng là gì?
2 Từ khóa Synchronized
3 Wait Sets và Thông báo (Mô hình Sản xuất - Tiêu thụ)
4 Hiểu về Khóa (Locks) qua ví dụ Tổng Vector Song song
5 Khóa Đọc-Ghi và Khóa Quay vòng là gì?
6 Mô hình Sản xuất - Tiêu thụ với Biến Điều kiện
7 Đồng bộ hóa Công việc với Semaphore
8 Biến Atomic
1 Tìm kiếm Mảng Song song với CountDownLatch
2 Xử lý Ma trận với Barrier
3 Xử lý Mảng Song song với Phaser
4 Trao đổi Dữ liệu giữa các Luồng với Exchanger
5 Deadlock là gì và cách tránh?
6 Từ khóa Volatile
7 [Dự án] - Mô phỏng Công việc MapReduce với Luồng - Phần 1
8 [Dự án] - Mô phỏng Công việc MapReduce với Luồng - Phần 2
1 Tại sao nên tái sử dụng luồng?
2 Giới thiệu lớp ThreadPoolExecutor
3 Hàng đợi công việc cho ThreadPool
4 Xử lý ngoại lệ trong ThreadPool
5 Quản lý tác vụ bị từ chối trong ThreadPool
6 Giám sát Hiệu suất của ThreadPool
7 Lập lịch tác vụ với ScheduledThreadPoolExecutor
8 Thực hành với ForkJoinPool
9 Tạo Thread Pool với Executors
10 Cách xác định kích thước Thread Pool phù hợp
1 Áp dụng song song cho Thuật toán Sắp xếp Nhanh (Quick Sort)
2 Có thể cải thiện Tìm kiếm Nhị phân thông qua Đa luồng?
3 Nhân Ma trận Song song - Cách đơn giản
4 Nhân Ma trận Song song - Cách tối ưu
1 Bài toán Triết gia Ăn tối
2 Bài toán Người đọc - Người viết
3 Bài toán Thợ cắt tóc Đang ngủ
4 Bài toán Mutex Không bị đói
1 Cách quan sát bên trong JVM
2 Giới thiệu Framework Spring Boot (tóm tắt)
3 Chạy Khối lượng công việc Bất đồng bộ trên Spring Boot
4 Giới thiệu Framework RxJava (tóm tắt)
5 Xây dựng Pipeline Dữ liệu Song song với RxJava2
6 Giải phóng Giao diện Người dùng thông qua Đa luồng (với JavaFX)
1 Virtual Thread là gì và cách tạo?
2 Ứng dụng thực tế của Virtual Thread trong Ứng dụng Spring Boot
3 Giải thích về Structured Concurrency
1 Liên kết đến tài nguyên

Giới thiệu khóa học

Intro

This course is the best online resource you need to become proficient in working with threads and correctly apply Multithreading techniques to your applications, in order to leverage the CPU capabilities of your machines and max out the application throughput.

The goal of this course is to make you deeply understand the multithreading concepts (that can be re-used in many other languages), applied and exemplified in Java, the language used by many large companies and more than 9 million developers around the world.

About myself

I wrote my first line of code 10 years ago when I was in highschool. I quickly got addicted by how easy you could build useful programs using C# and Windows Forms.

I followed the Computer Science University track where I managed to set the ground knowledge for anything related to Software Engineering (Algorithms, Data Structures, Operating Systems, Multithreading, Distributed Computing, Networking, and many other topics), and I finalized this amazing 6-year learning path by getting a Master's Degree in Parallel and Distributed Systems where I built from the ground a custom Kubernetes Gang Scheduler optimised for running Spark Jobs.

Currently, I'm a Software Engineer focused on high-scale JVM-based development. I build code used by millions of people around the world.


Why I built this course?

Multithreading is an advanced topic for any developer. I saw many people struggling to understand things like:

  • How can I speed up the runtime of this code?

  • Is it possible to split this problem into multiple independent pieces?

  • How can I measure the performance of this code?

  • Why is my multithreaded code stuck? How can I debug it?

It was really hard for me too to understand some of those things, even if I had enough university background in this area.

But fortunately, after many years of working with threads, many trial and errors, many profiling sessions and books & articles read, I managed to deeply understand those critical concepts and use them properly in my daily job.

For those reasons, I thought that building a course where I expose my understanding on Multithreading, would definitely help other people to save time and avoid going into the same pitfalls that I went through.


This course is going to be continuously updated with new information in the multithreading field, but also with the relevant topics that you request in the Q&A section, so you're buying a true learning asset, since you can use this course as a technical reference.


What is the content course?

This course is split into multiple chapters, each one exposing a major topic in Multithreading:

  • Chapter 1 - General Multithreading Concepts

    • In this chapter we're going to learn the basics of Multithreading - threads, processes, concurrency, parallelism. This chapter is full of visual lectures, designed to provide a unique learning experience.

  • Chapter 2 - Thread Management

    • This is the first hands-on chapter where we're going to learn how to create threads, how to use thread groups, daemon threads, but also how to build exception control flows, to avoid crashes due to unhandled exceptions.

  • Chapter 3 - Thread Synchronization - Part 1

    • This chapter goes into the main challenge when working with multiple threads, which is thread synchronization so that we get a predictable output of our application and avoid inconsistent behaviours.

    • We're going to learn basic synchonization tools - locks, wait sets and notifications, read & write locks and semaphores

  • Chapter 4 - Thread Synchronization - Part 2

    • This chapter is a continuation of the previous one, where we're going to tackle advanced synchronization tools, like Barriers and Phasers, but we're also going to learn about deadlocks and cache coherency enforcement by the use of the volatile keyword.

  • Chapter 5 - Thread Reusability

    • We can't create an infinite number of threads in our applications, because each thread needs some resources in order to be created, so for that reason we need to reuse threads.

    • This chapter describes the tools we have in Java to deal with thread reusability (Thread Pools) and it goes deep into how to work with them, manage performance, choose the right parameters (tuning) and many others.

  • Chapter 6 - Parallel Algorithms

    • In this chapter we're going to see how can we improve the runtime of a couple of known algorithms through multithreading.

    • We're going to learn the thinking process of breaking a problem into multiple pieces which can be processed in parallel, and finally merging the results to get the main output.

  • Chapter 7 - Famous Multithreading Problems

    • The first steps in Multithreading have been done many years ago, where famous computer scientists have tackled the problems which are know part of the Java Threading API.

    • In this chapter, we're going to study a couple of those problems and get the thought process of their solution. This exercise is very valuable and contributes to the overall understanding of parallelism and synchronization.

  • Chapter 8 - Multithreading in Real World

    • This final chapter of this course tackles the connection between Multithreading and widely used frameworks, like Spring-Boot, JavaRx and JavaFX. We're going to see how can we design a REST API in Spring Boot, which processes requests in an asynchronous way, leveraging multithreading.

    • We're going to see how can we build parallel data flows with JavaRx2, and also how to decouple the UI updates from the background processing in JavaFx, which technically applies to mobile and desktop applications.


What are the requirements for this course?

  • Basic Java Knowledge (including Object Orientated Programming)

  • An IDE of your choice, ideally IntelliJ Idea Community Edition, but you can use any IDE where you can run plain Java code

  • Willingness to learn and an open-mind


Thank you for taking the time to look through this description and I'm looking forward to see you in the first lecture!

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Java
Hiển thị tất cả khoá học Multithreading
Hiển thị tất cả khoá học Software Development
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊