concurrency相关内容

如何使用AreaChart在JAVAFX 2 - 并发,动画,图表中实时流式传输数据

需求 - 使用实时流数据构建动画AreaChart。也许每1秒绘制300个数据点。 Details - 所以我需要从医疗设备读取实时流数据,患者的呼吸模式,使用JavaFX中的AreaChart以波形方式显示它。 我是JavaFX的新手,所以我创建了一个小的POC,看看并发和动画在JavaFX中是如何工作的。 满足基本测试,就实现功能而言。但我对下面代码的性能不满意。 在下面 ..
发布时间:2016-11-20 18:04:01 Java开发

如何安全地装饰现有的回调?

假设我使用以下回调API: / ** *注册新操作这将在稍后运行在 *一些其他线程,清除任何以前设置的回调操作。 * * @param回调一个稍后运行的动作。 * @返回先前注册的操作。 * / public Runnable寄存器(Runnable callback); 我想注册我自己的操作,但是我想保留任何设置的行为。换句话说,我想我的动作看 ..
发布时间:2016-11-10 11:15:08 Java开发

实验弱有序并发的工具

有什么工具可以帮助我们尝试使用弱顺序并发? 也就是说,在教授自己关于部分栅栏,弱原子,获取/消费/释放语义的时候, -free算法等? 工具或沙箱想要锻炼和强调一个弱有序的线程算法,揭示算法在理论上可能失败的各种方式。以物理方式运行在x86上,例如,该工具将能够暴露ARM类型的失败。 一个开源工具是更可取的。 参考文献: C ++ 11标准草案(PDF,请参阅第1,29条和 ..
发布时间:2016-11-06 03:46:41 C/C++

C ++ 11等价于java.util.ConcurrentHashMap

我发现自己不断地写Mutex代码以同步对std :: unordered_map和其他容器的读/写访问,以便我可以像java.util.concurrent容器一样使用它们。我将要开始编写一个封装来封装Mutex,但我宁愿使用一个测试良好的库,所以我不填满线程。 有没有一个库? 解决方案 Intel生产了一个名为线程构建模块,它有两个这样的东西:concurrent_hash_map ..
发布时间:2016-11-06 03:02:32 C/C++

C ++ 11中的并发阻塞队列

对于在线程之间传递的消息,我正在寻找具有以下属性的并发队列: 退出方法以取消等待 可选:优先级 多个生产者,一个消费者。 concurrent_bounded_queue 的TBB会提供,但我正在寻找替代方案,以避免TBB的额外依赖。 应用程序使用C + +11和提升。我找不到任何合适的助推器。 解决方案 使用Boost库(circular_buffer)和C + ..
发布时间:2016-11-05 23:08:43 C/C++

并行快速排序通过单线程快速排序

我一直在读书C ++并发的行动,这里是使用futures实现并行快速排序的例子。 但我发现这个函数比单线程快速排序函数慢两倍,而不使用任何异步设施在c ++标准库。 用g ++ 4.8和visual c ++ 2012测试。 我使用10M的随机整数来测试,在visual c ++ 2012中,这个函数共产生6个线程在我的四核电脑上执行操作。 我真的很困惑的性能。任何机构都可以告 ..
发布时间:2016-11-02 20:55:40 C/C++开发

如何并行嵌套循环找到最近的两点在OpenMP?

此问题不是融合嵌套循环的重复。 OP希望减小最大值并同时存储两个指数。融合循环不会修复OPs问题。 OP在共享索引上仍然具有竞争条件,并且将访问减小的值,该值不会被合并直到缩减的结束(参见我的答案对于OPs问题的一个解决方案)。 我有一个2D矩阵X,X [i] [j]表示点i和j之间的距离。下面的代码是根据他们的嵌套循环中的余弦距离: // m,n是X的行,列分别是 int mi, ..
发布时间:2016-11-02 02:38:16 C/C++开发

在Map C ++中同时访问不同的键

我有两个线程,其中一个线程“A”向地图插入一个键X,同一个键X被该线程“A”频繁修改。 在特定点,线程“A”完成对该键X的修改,然后线程“B”将读取键“X”并从地图中删除键“X”。 线程“B”读取和删除地图时,线程“A”将同时插入和写入一些其他键(不是同一个键X )。 在这种情况下,地图是否需要同步?由于线程“B”确定键“X”被线程“A”完全修改,并且不会对该键“X”进行更多的并 ..
发布时间:2016-10-31 00:01:58 C/C++开发

C ++ Windows MFC并发:让线程等待直到特定状态实现

在Windows MFC并发,我如何告诉我的当前线程等待直到一个特定的状态被实现?我现在唯一能想到的方法是执行定期睡眠并检查状态 - 当我们处于预期的状态,然后继续。有没有更好的方法这样做? BOOL achieve = FALSE; int main(int argc,char ** argv){ //此函数创建一个新线程并在未来的某个时间修改'已实现'全局变量 doSo ..
发布时间:2016-10-30 23:51:26 C/C++开发

使用std :: thread和std :: mutex

我正在尝试使用独立线程的互斥锁。要求是,我有很多线程将独立运行和访问/更新共同追索。为了确保通过单个任务更新追索权,我使用互斥。但是这不工作。 我已粘贴代码,代表我在下面尝试做的事情: code> #include #include #include #include #include ..
发布时间:2016-10-30 15:09:57 C/C++开发

我们可以用两个或更多的无锁的容器进行原子操作而不锁定两个?

我在寻找 可组合操作 相当容易做到使用事务内存。 (感谢Ami Tavory) 它很容易使用锁(互斥/自旋锁) - 但它可能导致死锁 - 所以基于锁的算法只能与手动调整。 无锁算法没有死锁的问题,但它是不可组合的。需要将2个或更多容器设计为单个组成的无锁数据结构。 有任何方法,辅助实现或一些无锁算法 - 使用几个无锁容器来保持一致性? 要检查项目是否在两个容器中一次 将元 ..
发布时间:2016-10-30 02:53:19 C/C++开发

c ++ qthread并发启动2个线程

我有两个线程一和二。由头文件中它们各自的类定义。我想在第一个线程启动时启动第二个线程。在第一个创建和启动第二个线程的构造函数中产生意外结果。 我的头文件“header.h” #ifndef HEADER #define HEADER #include class One:public QThread { public: One(); void ru ..
发布时间:2016-10-30 01:40:52 C/C++开发

如何管理对象的生命时间使用Boost库智能指针?

有一个场景,我需要解决与shared_ptr和weak_ptr智能指针。 两个线程,线程1& 2,正在使用一个称为A的共享对象。每个线程都有对该对象的引用。线程1决定删除对象A,但是同时线程2可能正在使用它。如果我使用shared_ptr来保存对象A在每个线程中的引用,对象不会在正确的时间被删除。 我应该怎么做才能删除对象 解决方案 有两种情况: p> 一个线程拥有共享数 ..
发布时间:2016-10-30 01:12:02 C/C++开发

std :: async变体,它处理集合

使用 std :: async 我想知道是否可能有一个帮助函数,它创建 std :: future 通常我有以下情况: auto func = [](decltype(collection):: reference value){ //一些异步工作 }; typedef std :: result_of :: type ResultType ..
发布时间:2016-10-28 00:26:37 C/C++开发

共享内存 - 需要同步

我看到一个项目,其中进程之间的通信使用共享内存(例如在Windows下使用 :: CreateFileMapping ),每当有一个进程想通知一些数据在共享内存中可用,使用命名事件的同步机制通知感兴趣方共享内存的内容发生了变化。 我关注的事实对于读取新信息的进程,不存在适当的存储器栅栏,以知道它必须使其数据的副本无效,并且一旦其被制造者进程“发布”,就从主存储器读取它。 你知道如何在W ..
发布时间:2016-10-27 23:14:25 C/C++开发

并发写入同一缓存行中的不同位置

假设我有一个C ++ 11应用程序,其中两个线程使用指向原始类型的简单指针写入不同但附近的内存位置。我可以确定这两个写入最终都会在内存中(可能是在两者达到 boost :: barrier ),或者存在两个CPU内核拥有自己的包含该数据的缓存行的风险,并且第二个核心刷新其对RAM的修改将覆盖和撤消第一次写入所做的修改? 我希望缓存一致性将照顾我的所有 解决方案 是的高速缓存一致性机制 ..
发布时间:2016-10-27 00:11:52 C/C++开发