Theo một kênh 9 E2E video (với Herb Sutter trong đó) trong C++ 0x nếu số là atomic<int>
number++
là nguyên tử. Ai đó có thể xác nhận rằng nó là như thế nào trong tiêu chuẩn C++ 11 cuối cùng (cho phép giả vờ rằng nó được hoàn thành :)).++ nguyên tử cho std :: nguyên tử <int>
9
A
Trả lời
14
Chuẩn là hoàn tất và mọi thao tác trên tất cả các chuyên môn tách rời chuẩn của atomic<T>
là nguyên tử.
Điều này không có nghĩa là tất cả các biểu thức liên quan đến tích phân tiêu chuẩn atomic<T>
là nguyên tử.
number = number * 2;
là hai hoạt động:
temporary = number * 2;
number = temporary;
Mỗi trong số họ là nguyên tử, nhưng họ cùng nhau thì không. Đây là những gì giao dịch/phần quan trọng được cho.
7
Có. atomic<int> operator++
sử dụng atomic<int>::fetch_add
là một hoạt động nguyên tử.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf p. 1127
Các vấn đề liên quan
- 1. C++ 11: viết hàm khởi tạo bằng nguyên tử <bool> nguyên tử?
- 2. Liệu std :: nguyên tử <std::string> có hoạt động phù hợp không?
- 3. Là sig_atomic_t và std :: nguyên tử <> hoán đổi cho nhau
- 4. Erlang: nguyên tử hay nguyên
- 5. writeToFile: nguyên tử: ý nghĩa của nguyên tử là gì?
- 6. std :: hỗ trợ nguyên tử trong g ++ 4.4.3
- 7. Sử dụng nguyên tử với std :: thread in C++ 11
- 8. Nâng tải trọng không nguyên tử lên thông qua việc mua các tải nguyên tử
- 9. std :: nguyên tử <int> sụt lần và so sánh
- 10. Là + =, | =, & = v.v ... nguyên tử?
- 11. Là fwrite nguyên tử?
- 12. cho các lệnh x86 nguyên tử
- 13. Thực hiện nguyên tử <T> :: lưu trữ
- 14. Tôi có phải sử dụng nguyên tử <bool> cho biến bool "thoát" không?
- 15. hoạt động nguyên tử cho shared_ptr trong C++ 11
- 16. Chức năng hoán đổi nguyên tử sử dụng gcc nguyên tử dựng sẵn
- 17. Redis là ZINCRBY nguyên tử?
- 18. File.Move hoạt động nguyên tử
- 19. Nguyên tắc thiết kế sau std :: ratio <>
- 20. iinc nguyên tử trong Java?
- 21. Operations nguyên tử trong C++
- 22. Có phải tăng số nguyên nguyên tử trong x86 không?
- 23. Sự khác biệt giữa nguyên tử trong Lisp thường và nguyên tử trong Clojure là gì?
- 24. Nên std :: nguyên tử <int*> :: tải đang làm một vòng lặp so sánh và trao đổi?
- 25. rss và nội dung nguyên tử loại
- 26. Git có cam kết nguyên tử không?
- 27. Hoạt động nguyên tử trong ARM
- 28. Liệu BeginSend <IList <ArraySegment ....) thực hiện gửi nguyên tử của tất cả các ArraySegments?
- 29. Chia sẻ sai và biến nguyên tử
- 30. Là tệp.Delete() nguyên tử theo .NET
vì vậy số = số * 2; và số = số + 47; cũng là nguyên tử? – NoSenseEtAl
Mọi thao tác * định nghĩa * đối với 'nguyên tử 'là nguyên tử, như' số * = 2; 'và' số + = 47; '. –
số = số * 2 là * hai * hoạt động. * Mỗi * trong số chúng là nguyên tử, nhưng chúng lại không giống nhau. Đây là những gì "giao dịch" được cho. – spraff