cost 243 ms
如何将具有 lambda 完成 function 的 std::barrier 传递给 C++ 中的命名 function - How to pass an std::barrier with a lambda completion function to a named function in C++

我正在尝试为一些(相当)密集的信号处理任务制作一些工作线程。 我目前使用 C++20 来使用std::jthread ,我更喜欢std::thread (尽管这不是限制性的,我认为这与我的问题无关)。 我想将std::barrier传递给从某些std::jthread调用的“辅助函数”。 如果我在 ...

有没有办法同时在一个类的多个实例上运行一个函数? 带 MIDI 控制的独立多节拍器 - Is there a way to run a funcion on several instances of a class at exactly the same time? Independent Multi-Metronome with MIDI ctrl

嗨 :) 我正在编写一个独立的多节拍器,需要同时开始为我的类 Metronome() 的每个实例在 while 循环上运行 funciont beat() 。 我阅读了有关线程的信息,但它似乎会造成一些启动延迟。 然后我进入了barries ,但我无法想象如何实现它:/或者我应该尝试使用多进程? 我 ...

Vulkan 执行依赖链 - Vulkan execution dependency chaining

我正在努力理解何时形成执行依赖链。 vulkan 规范指出: 执行依赖链是一系列执行依赖,它们在第一个依赖的ScopedOps1和最后一个依赖的ScopedOps2之间形成发生前的关系。 对于每对连续的执行依赖,如果第一个依赖中的Scope2nd和第二个依赖中的Scope1st的交集不是空集,则存 ...

在屏障实现中将代码从顺序一致性更改为不太严格的顺序 - Changing code from Sequential Consistency to a less stringent ordering in a barrier implementation

赏金将在 6 天后到期。 此问题的答案有资格获得+50声望赏金。 user17799869正在从有信誉的来源寻找答案: 我希望答案能帮助我理解排序语义以及在决定必须使用什么排序以及在哪里使用之前必须考虑的所有内容。 我在 C++ Concurrency in Action book 中遇到了此代 ...

屏障的 shared_ptr 没有保持预期的计数器 - shared_ptr of barrier doesn't keep the expected counter

我有 2 个代码示例将 2 个线程与std::barrier{2}同步。 一种是静态创建屏障,另一种是动态创建。 第二种方式模仿我想要使用屏障的方式 - 因为线程数 - 因此屏障的“大小”是我仅在运行时才知道的,因此无法声明它 static。 我的问题是 - 为什么 static 片段有效,而动态片 ...

线程:在一个小阵列上进行多次重复并行扫描的最有效方法? - Threading: Most efficient way for many repeated parallel sweeps over a small array?

我正在优化一个求解器(线性方程组),其最关键的部分包括许多(1000+)短(~10-1000 微秒)大规模并行(64 个 CPU 内核上的 128 个线程)扫描小(CPU 缓存大小)arrays,伪代码: 不幸的是,到目前为止我尝试过的由 OMP 或 TBB 提供的标准并行化结构(串行外循环加上并 ...

当 TextView 错误横幅可见时,RecyclerView 的最后一项被切断。 我正在使用带屏障的约束布局 - RecyclerView's last item is cut off when TextView Error Banner is visible. I'm using Constraint Layout with Barrier

我不知道如何问这个问题。 这似乎很容易做到,但我不确定为什么它不起作用。 无论如何,这里去。 我有这个错误横幅,只有当类别的总“权重”小于或大于 100 时才应该可见。但是我的问题是,当错误横幅可见时,我的 RecyclerView 的最后一项被切断,我认为错误横幅的高度。 只有当我再次编辑它并显示 ...

为什么 C++ 引入了单独的 std::latch 和 std::barrier? - Why C++ has introduced separate std::latch and std::barrier?

SO上有一些类似的问题。 但他们只以一种方式提出问题。 std::latch比std::barrier有一个优势,与后者不同,前者可以由参与线程多次递减。 std::barrier比std::latch有一个优势,与后者不同的是,一旦到达的线程在阶段的同步点被解除阻塞,前者就可以被重用。 ...

条件内的 OpenCL 屏障使用 - OpenCL barrier usage within conditional

根据规格: 如果屏障在条件语句中,则如果任何工作项进入条件语句并执行屏障,则所有工作项都必须输入条件。 如果屏障在循环内,则所有工作项都必须为循环的每次迭代执行屏障,然后才能允许任何工作项继续执行超出屏障。 据我了解,这意味着在任何内核中: if(0 == (get_local_id( ...

Java线程有“join()”等待所有线程,那么我们需要CyclicBarrier的用例是什么? - Java thread has "join()" to wait all threads, then what use case do we need CyclicBarrier?

JDK文档说: 然后它给出了一个示例代码,它可以工作。 但是这里的 CyclicBarrier 对我来说似乎是多余的:线程“互相等待”,这是由调用thread.join()的for循环完成的 无论如何,只要我想从线程中收集所有结果,我都必须等待它们完成,对吧? 如果 Thread.join ...

如何使用 C++ std::barrier arrival_token? - How to use C++ std::barrier arrival_token?

分别使用std::barrier arrive和wait函数时,我不断收到编译器错误。 我一直在尝试寻找使用这些功能的示例,但我找不到它们,所以我现在只是在疯狂地拍摄。 它抱怨我的到达标记不是右值,所以我将声明更改为使用&& ,但我不太熟悉右值的工作原理。 这是代码: 我得到编译错 ...

2022-05-12 10:30:01   1   145    c++ / barrier  
MacOS 键盘布局不适用于 linux 槽屏障(协同) - MacOS keyboard layout not working on linux trough barrier(synergy)

我的问题相当复杂,所以我不希望找到解决方案,但也许有人在我之前遇到过同样的问题。 我的工作区由两台计算机、一台 mac 和一台运行 linux Manjaro 的 PC 组成。 为了避免有 2 个键盘,我使用我的 Mac 中的一个,布局为 CH-DE。 我在作为服务器的 mac 和作为客户端的 l ...

如何实现信号量书中的伪代码? - How to implement the pseudocode in the book of semaphores?

最近,我学习了一门操作系统课程,该课程将我发送到信号量小书中的屏障伪代码。 但是现在几个小时我一直在努力实现这个障碍,我似乎无法正确理解它。 为了理解它,我尝试了一个简单的程序,让线程进入障碍,当所有线程都到达时,让它们通过。 这是我的代码:#include <errno.h> #in ...

调用 pthread_barrier_wait() 失败 - Call to pthread_barrier_wait() fails

我在 C 中有一个多线程应用程序,它对矩阵进行一些计算。 我使用障碍来同步工作。 我收到了一堆奇怪的错误和不确定的行为,我意识到我忘记检查 pthread_barrier_wait() 的返回值。 在这里,我声明了一些全球性的障碍: 我有一个 main 函数,它进行一些初始化,然后产生工人: ...

NDIS 自旋锁是否充当 DMA 的内存屏障? - Does NDIS spinlock serves as a memory barrier for DMA?

在 NDIS 驱动程序中,我需要将一些数据写入共享内存,然后通知硬件获取这些数据。 写入共享内存受 NDIS 自旋锁保护。 在写入共享内存和通知硬件数据已写入之间可能存在竞争。 自旋锁是否作为隐式内存屏障来防止这种竞争? 还是应该明确添加内存屏障? ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM