Một trang web về kỹ thuật lập trình
Trong môi trường đa luồng, chia sẻ dữ liệu giữa các luồng là rất dễ dàng. Nhưng việc chia sẻ dữ liệu dễ dàng này có thể gây ra vấn đề trong ứng dụng. Một vấn đề như vậy là điều kiện cuộc đua (race condition). Race condition là gì Race condition là tình huống xảy…
Để truyền đối số cho đối tượng hoặc hàm liên kết với thread, chỉ cần truyền đối số bổ sung cho hàm tạo std::thread. Theo mặc định, tất cả các đối số được sao chép vào bộ nhớ trong của thread mới. Truyền các đối số đơn giản cho std::thread Làm thế nào để không…
Joining Threads với std::thread::join() Khi một thread được bắt đầu thì một thread khác có thể đợi thread mới này kết thúc. Để thực hiện điều này, ta cần gọi hàm join() trên đối tượng std::thread. Hãy xem một ví dụ sau, giả sử thread main phải khởi chạy 10 thread Workder và sau khi…
Trong các phiên bản chuẩn trước đây của C++ chỉ hộ trợ lập trình đơn luồng. Nhưng bắt đầu từ phiên bản C++ 11, chúng ta đã được giới thiệu về một gói thư viện mới là thread. Gói thư viện này hỗ trợ cho việc lập trình đa luồng (C++ Multithreading). Các trình biên…