Đồng thời
Write correct, efficient multithreaded C++ — threads, synchronization, atomics, and parallel algorithms.
Chủ đề & đồng bộ hóa
std::thread, std::jthread & Quản lý luồng
Tìm hiểu cách tạo và quản lý chủ đề với std::thread và std::jthread của C++20. Hiểu tham gia và tách ra, hủy hợp tác bằng mã thông báo dừng, lưu trữ cục bộ theo luồng và xử lý ngoại lệ trên các ranh giới luồng.
Mutexes, Khóa & Phần quan trọng
Nguyên tắc đồng bộ hóa chính: mutex, lock_guard, Unique_lock,scoped_lock, Shared_mutex. Tìm hiểu cách bảo vệ dữ liệu được chia sẻ, ngăn chặn bế tắc và hiểu sự khác biệt giữa các cuộc đua dữ liệu và điều kiện cuộc đua.
Biến điều kiện & Nhà sản xuất-Người tiêu dùng
Sử dụng các biến điều kiện để phối hợp các luồng một cách hiệu quả. Xây dựng hàng đợi nhà sản xuất-người tiêu dùng an toàn theo luồng, xử lý các lần đánh thức giả và tránh sự cố mất đánh thức.
Không đồng bộ, nguyên tử và song song
std::async, std::future & std::promise
Sử dụng tính năng trừu tượng hóa đồng thời cấp cao hơn: khởi chạy các tác vụ không đồng bộ với std::async, truy xuất kết quả bằng std::future và đặt thủ công các giá trị hoặc ngoại lệ với std::promise.
Hoạt động nguyên tử & Thứ tự bộ nhớ
Hiểu lập trình không khóa với std::atomic. Thứ tự bộ nhớ chính (thư giãn, thu thập, giải phóng, seq_cst), triển khai khóa xoay với Atomic_flag và tìm hiểu mẫu so sánh và hoán đổi (CAS).
Thuật toán song song & Chính sách thực thi
Tận dụng STL song song C++17 để song song hóa việc sắp xếp, chuyển đổi và giảm thiểu bằng các chính sách thực thi. Hiểu khi nào tính song song có ích, định luật Amdahl và thiết kế nhóm luồng thực tế.