Giả sử chúng ta có hai chủ đề, một là đọc một bool trong một vòng lặp và một người khác có thể chuyển đổi nó vào những thời điểm nhất định. Cá nhân tôi nghĩ rằng điều này nên được nguyên tử bởi vì sizeof(bool)
trong C + + là 1 byte và bạn không đọc/ghi byte một phần nhưng tôi muốn được 100% chắc chắn.Thao tác đọc/ghi bool không phải là nguyên tử trên x86?
Vậy có hay không?
EDIT:
Ngoài ra để tham khảo trong tương lai, không giống nhau áp dụng cho int
?
Không phải bất kỳ thứ gì nhỏ hơn kích thước của kiến trúc cơ bản cả * nguyên tử * và cũng * kém hiệu quả * hơn có thể? –
http://stackoverflow.com/questions/8037289/is-mutex-required-for-1-byte-shared-memory cho thấy nó không phải nguyên tử. –
http://stackoverflow.com/questions/8517969/is-this-the-correct-way-to-atomically-read-and-write-a-bool cho thấy đó là nguyên tử "trong hầu hết các máy". –