Lost Wakeup trên Condition Variable
Nếu waiter kiểm tra predicate rồi mới gọi wait() mà không giữ lock xuyên suốt, signaller có thể chen vào giữa hai bước đó: đổi trạng thái và signal trước khi waiter kịp block — tín hiệu bị mất và waiter ngủ vĩnh viễn. Vì vậy predicate phải được kiểm tra khi đang GIỮ lock, và wait() phải nằm trong một vòng lặp.
ConcurrencyTrung bình2026-08-25
Mở rộng
Animation gốc là một file HTML tự chứa, có thể nhúng lại ở bất kỳ trang nào khác. Mở file gốc