lock-free

    4热度

    3回答

    我在阅读Anthony Williams的C++ Concurrency in Action。目前我在他desribes memory_order_consume点。 该块之后有: 现在,我已经覆盖了内存排序的基础,它的时间来看看 更复杂的部件 这让我害怕一点点因为我没有完全理解几件事情: 如何依赖性排序之前不同步与同步?他们都创造了发生之前的关系。什么是确切的区别? 我感到困惑下面的例子: in

    2热度

    1回答

    我在阅读Anthony Williams的C++ Concurrency in Action。 在部分“理解松散排序”,它具有: 有一些额外的东西,你可以告诉机柜内的人,如“记下这个号码,告诉我什么在底部列表“(交换)”和“写下 这个数字,如果在列表底部是那个;否则告诉我我应该猜到的是什么“(compare_exchange_strong),但这并不影响一般的 原理。 这是否意味着这些操作总是按修

    8热度

    4回答

    我刚才看到香草萨特的谈话:C++ and Beyond 2012: Herb Sutter - atomic<> Weapons, 2 of 2 他表示在执行的std :: shared_ptr的析构函数的错误: if(control_block_ptr->refs.fetch_sub(1, memory_order_relaxed) == 0) delete control_block

    8热度

    1回答

    我在将boost::lockfree::queue<<T, fixed_sized<false>, ..> 置于共享内存中时出现问题。我需要它,因为我必须要能插入超过65535个消息到队列中,并fixed_sized队列与65535 下面的代码工作正常限制(但capacity<...>选项意味着fixed_sized<true>): typedef boost::interprocess::all

    -1热度

    3回答

    我想添加几个单元测试到我的代码,也因为我加载插件我不总是有权访问我正在运行的代码。 我真的想检查的测试是否我所调用的函数是无锁的? 是否有任何钩子或方法来测试如果在我的程序中的A点和B点之间存在对非锁定自由函数的调用? 另一个不那么复杂的函数是如何将所有调用挂接到锁定函数(如锁,系统调用...)。我知道如何挂钩调用malloc在Windows上,但没有别的。 谢谢您的帮助

    0热度

    1回答

    混合最终一致性系统和传统ACID系统是否有任何模式? 我想在大型机上的某些(至少两个)遗留系统中存储需要类似ACID事务的数据。这些大型机数据库(我们称之为OldWorld)在同一个进程中的同一个事务管理器下运行,因此大型机系统的一致性不成问题。 我有一个事务管理器,可以在非大型机环境(我们称之为NewWorld)中处理与mainframe-tm和ACID-capable关系数据库的XA事务。 但

    6热度

    2回答

    只有一个写我想创建一个类有两种方法: void SetValue(T value)存储的值,但只允许存储单个值(否则会引发异常)。 T GetValue()检索值(如果没有值,则抛出异常)。 我有以下的欲望/约束: 读值应该是廉价的。 写入该值可能(适度)成本高。 GetValue()应该抛出异常只有在先进的日期值不存在(null):它不应该在另一个线程SetValue()通话后扔基于过时null

    2热度

    3回答

    此代码片段从ConcurrentQueue执行从here给出。 internal bool TryPeek(out T result) { result = default(T); int lowLocal = Low; if (lowLocal > High) return false; SpinWait spin = new SpinWai

    2热度

    4回答

    我完全新手在使用CAS指令,因此我对回答这些简单的问题抱歉,我必须了解基本的东西 所以,如果是有可能转换这段代码给一些CAS指令使这段代码线程安全? if (a == 0) { a = 1; return true; } else { return false; } 在现实生活中这样的代码看起来像这样: // 0 - available, 1 - proces

    8热度

    1回答

    我在jsr166中读取FutureTask类,发现结果对象是非易失性的,代码中的注释是“非易失性的,受状态读/写保护”第75行,状态是volatile int。我已经从Java Language Spec阅读Java内存模型,但没有找到准确的答案。有人知道原因吗?