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

Learn Multithreading with Modern C++

Học Lập trình Đa luồng với C++ Hiện đại

Học Lập trình Đa luồng với C++ Hiện đại

Khám phá cách viết mã C++ đa luồng để tận dụng tối đa sức mạnh phần cứng đa xử lý hiện đại!

4.5
(1,940 đánh giá)
22,932 học viên
Giảng viên
James Raynard
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 379.000đ -87%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
9.0 giờ video
91 bài giảng
20 bài quiz
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 29/05/2026

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

Cách viết mã đa luồng di động trong C++
Nguyên lý cơ bản của lập trình đa luồng áp dụng được cho mọi ngôn ngữ
Hiểu về xử lý đồng thời (concurrency)
Kiến thức về thuật toán song song trong C++17

Yêu cầu

Làm quen với các tính năng C++ Hiện đại Nâng cao như biểu thức lambda và ngữ nghĩa di chuyển (move semantics)
Cần trình biên dịch hỗ trợ C++11 (C++14 được khuyến khích). Thuật toán song song yêu cầu C++17
Dành cho học viên đã tham gia các khóa "Học C++ Hiện đại Nâng cao" hoặc "Cập nhật lên C++ Hiện đại" của tôi
Thành thạo tiếng Anh (trình độ B2, tốt nhất là C1)

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

Dành cho lập trình viên đã có kiến thức tốt về C++ nhưng chưa hoặc ít tiếp xúc với đa luồng

Nội dung khóa học

12 phần • 91 bài giảng
1 Giới thiệu
2 Giới thiệu Giảng viên
3 Hướng dẫn Bài tập và Mã nguồn
1 Tổng quan C++ Hiện đại Phần Một
2 Tổng quan C++ Hiện đại Phần Hai
3 Tổng quan C++ Hiện đại Phần Ba
4 Tổng quan C++ Hiện đại Phần Bốn
5 Tổng quan C++ Hiện đại Phần Năm
1 Giới thiệu Xử lý Đồng thời
2 Lý do sử dụng Xử lý Đồng thời
3 Tổng quan về Xử lý Đồng thời
4 Cấu trúc Chương trình Đa luồng
5 Lược sử về Xử lý Đồng thời trong C++
6 Khởi chạy một Luồng
7 Hàm Luồng với Đối số
8 Máy tính với Bộ xử lý Đơn
9 Máy tính với Bộ xử lý Đơn và Bộ nhớ đệm
10 Máy tính với Nhiều Bộ xử lý
11 Vấn đề Đồng bộ hóa
1 Giao diện Luồng Hệ thống
2 Lớp Thread trong C++
3 Quản lý một Luồng
4 Nhiều Luồng
5 Tranh chấp Dữ liệu (Data Races)
6 Hậu quả của Tranh chấp Dữ liệu
1 Vùng Tới hạn (Critical Sections)
2 Giới thiệu Mutex
3 Lớp Mutex
4 Lớp được Đồng bộ hóa Nội bộ
5 Lock Guard
6 Unique Lock
7 Thời gian chờ và Mutex
8 Nhiều Người đọc, Một Người ghi
9 Mutex Dùng chung (Shared Mutexes)
10 Khởi tạo Dữ liệu Dùng chung
11 Dữ liệu Cục bộ Luồng (Thread-local)
12 Khởi tạo Lười biếng (Lazy initialization)
13 Khóa Kiểm tra Kép (Double-checked Locking)
14 Bế tắc (Deadlock)
15 Thực hành Bế tắc
16 Tránh Bế tắc
17 Thực hành Tránh Bế tắc
18 Luồng sống nhưng không chạy (Livelock)
19 Thực hành Livelock
20 Kết luận về Mutex
1 Phối hợp Luồng
2 Thực hành Phối hợp Luồng
3 Biến Điều kiện (Condition Variables)
4 Biến Điều kiện với Vị từ (Predicate)
5 Thực hành Biến Điều kiện
6 Tổng quan về Futures và Promises
7 Lớp Future và Promise
8 Ví dụ về Futures và Promises
9 Promises với Nhiều Luồng Chờ
1 Thao tác Số nguyên và Luồng
2 Kiểu Nguyên tử
3 Thao tác Nguyên tử (Atomic Operations)
4 Lập trình Không khóa (Lock-free)
5 Lập trình Không khóa (Tiếp theo)
6 Thực hành Lập trình Không khóa
7 Thực hành Lập trình Không khóa (Tiếp theo)
1 Lập trình Bất đồng bộ
2 Packaged Task
3 Hàm async
4 Hàm async và Tùy chọn Khởi chạy (Launch Options)
5 Chọn một Đối tượng Luồng
1 Tổng quan về Xử lý Song song
2 Tổng quan về Xử lý Song song (Tiếp theo)
3 Thực hành Xử lý Song song Dữ liệu
4 Tổng quan Thuật toán Chuẩn
5 Chính sách Thực thi (Execution Policies)
6 Thuật toán và Chính sách Thực thi
7 Thuật toán Song song Mới
8 Thuật toán Song song Mới (Tiếp theo)
9 Thực hành Thuật toán Song song
10 Kết luận về Thuật toán Song song Mới
1 Cấu trúc Dữ liệu và Xử lý Đồng thời
2 Con trỏ Dùng chung (Shared Pointer)
3 Lớp Giám sát (Monitor Class)
4 Lớp Giám sát (Tiếp theo)
5 Semaphore
6 Hàng đợi Đồng thời (Concurrent Queue)
7 Hàng đợi Đồng thời với Biến Điều kiện
8 Nhóm Luồng (Thread Pools)
9 Triển khai Cơ bản Nhóm Luồng
10 Nhóm Luồng với Nhiều Hàng đợi
11 Nhóm Luồng với Cơ chế "Đánh cắp" Công việc (Work Stealing)
12 Nhóm Luồng với Cơ chế "Đánh cắp" Công việc (Tiếp theo)
1 Sách Khuyến nghị
2 Thư viện Đa luồng
1 Tài liệu Bổ sung

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

Multithreading is used in many areas of computing, including graphics processing, machine learning and Internet stores. An understanding of threads is essential to make full use of the capabilities of modern hardware.

C++ now provides direct support for threads, making it possible to write portable multithreaded programs which have well-defined behaviour, without requiring any external libraries.

This course thoroughly covers the basics of threading and will prepare you for more advanced work with threads. Source code is provided for all the examples. No previous knowledge of threading is required, but you should be comfortable with programming in C++ at an intermediate level, using "Modern" features such as smart pointers and move semantics.

We start with the concepts of multithreading and learn how to launch threads in C++. We look at the problems which can occur with multiple threads and how to avoid them.

C++ provides tools which allow us to work at a higher level of abstraction than system threads which share data; we cover condition variables and promises with futures. We will also look at asynchronous, lock-free and parallel programming, including atomic variables and the parallel algorithms in C++17. We will finish the course by implementing a concurrent queue and thread pool, which will bring together the material you have learnt.

There are downloadable exercises for each video, with solutions, so you can check your understanding as you learn, gaining familiarity and confidence with the material. There are also some optional assignments, which are more challenging.

I will be actively supporting the course. I will respond promptly if you have any questions or experience difficulties with the course content. Please feel free to use the Q&A feature or alternatively you can send me a private message.

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 C Plus Plus
Hiển thị tất cả khoá học Concurrency
Hiển thị tất cả khoá học Parallel Computing
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 😊