jjzjj

Atomicity

全部标签

c++ - std::memory_order_relaxed 相对于相同原子变量的原子性

关于内存顺序的cppreference文档说Typicaluseforrelaxedmemoryorderingisincrementingcounters,suchasthereferencecountersofstd::shared_ptr,sincethisonlyrequiresatomicity,butnotorderingorsynchronization(notethatdecrementingtheshared_ptrcountersrequiresacquire-releasesynchronizationwiththedestructor)这是否意味着宽松的内存排序

c++ - C++ 中的内存模型 : sequential consistency and atomicity

我对C++11中的内存模型有一些疑问。关于https://www.think-cell.com/en/career/talks/pdf/think-cell_talk_memorymodel.pdf29.幻灯片上写着TheC++memorymodelguaranteessequentialconsistency但是,在我之前的帖子中,我了解到C++内存具有弱内存模型-编译器可以根据需要进行重新排序-他必须满足asif规则。 最佳答案 C++内存模型可以保证顺序一致性如果您使用具有适当内存顺序的原子操作来保证顺序一致性。如果您只是使用

c++ - 将 std::atomic_flag 包装在 getter/setter 中是否会使它的 "atomicity"无效?

假设我有一个包含std::atomic_flag作为私有(private)成员的类,通过getter公开。类似于以下内容(伪代码):classThing{private:std::atomic_flagready=ATOMIC_FLAG_INIT;public:isReady(){returnready.test_and_set();}}我天真的问题是:通过方法查询标志是否会将其变成非原子操作,成为非原子函数调用(或者是?)?我是否应该让我的ready标记为公共(public)成员并直接查询它? 最佳答案 不,它没有。test_an

ios - OpenCV 构建问题,找不到 ext/atomicity.h

我收到编译器错误提示在构建包含OpenCV的项目时。环境是针对iOS的Xcode4.5。它在模拟器上编译得很好,但在为设备构建时失败了。这是错误文本:/Users/Nick/projects/ios/opencv2.framework/Headers/core/operations.hpp:65:16:fatalerror:'ext/atomicity.h'filenotfound#include我正在使用opencv2.framework,使用cmake构建,使用说明here. 最佳答案 默认情况下,XCode4.5使用libc+

java - J bloch 使用的 "failure atomicity"是什么,它对不可变对象(immutable对象)有何好处?

刚刚看到下面的声明是因为immutableobjectImmutableobjectalwayshave“failureatomicity”(atermusedbyJoshuaBloch):ifanimmutableobjectthrowsanexception,it’sneverleftinanundesirableorindeterminatestate.谁能更详细地解释一下,为什么会这样? 最佳答案 Bloch的“失败原子性”意味着如果一个方法抛出异常,该对象之后应该仍然可用。通常,对象应处于与调用方法之前相同的状态。在不可变

快速排序,堆排序,进程通信,OS回收,事务一致性

某大厂面试题11.分布式事务的一致性问题事务的四大特性(ACID)原子性(Atomicity):一个事务(transaction)要么没有开始,要么全部完成,不存在中间状态。一致性(Consistency):事务的执行不会破坏数据的正确性,即符合约束。隔离性(Isolation):多个事

快速排序,堆排序,进程通信,OS回收,事务一致性

某大厂面试题11.分布式事务的一致性问题事务的四大特性(ACID)原子性(Atomicity):一个事务(transaction)要么没有开始,要么全部完成,不存在中间状态。一致性(Consistency):事务的执行不会破坏数据的正确性,即符合约束。隔离性(Isolation):多个事