Chuyển đến nội dung
Module 7

Đồng thời

Write correct, efficient multithreaded C++ — threads, synchronization, atomics, and parallel algorithms.

Bắt đầu học6 bài học

Chủ đề & đồng bộ hóa

  1. 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.

  2. 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.

  3. 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

  1. 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.

  2. 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).

  3. 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ế.