concurrency相关内容

您可以在单个vert.x上运行Verticle的并发实例吗?这些实例是线程安全的吗?

我知道这个问题已经被问过了,但我认为它从来没有得到过准确的答案。 Vert.x是否可以在单个Vert.x上运行同一Verticle的多个实例,这意味着单个Verticle可以在多个事件循环上运行?如果是这样的话,每个事件循环是运行相同的处理程序实例还是运行单独的处理程序实例,换句话说,是同一个Verticle的多个实例线程安全且不共享任何状态,还是会有并发问题? 根据Vert.x文档- ..
发布时间:2022-09-24 16:24:28 其他开发

如何合并并发和缓冲区容量有限的嵌套可观测IObservable&;lt;IObservable&;lt;T&;gt;&;gt;?

我注意到RxMerge运算符接受一个可选的maxConcurrent参数。这可用于通过并发订阅有限数量的子序列来限制最大并发性。当推送新的子序列的速度慢于订阅的子序列的完成速度时,它工作得很好,但当推送新的子序列的速度快于此速度时,它就会变得有问题。发生的情况是,子序列被缓冲在大小不断增加的内部缓冲区中,并且当前订阅的子序列也变得越来越陈旧。以下是此问题的演示: await Observab ..
发布时间:2022-08-14 20:18:15 C#/.NET

在Scala中使用超时的未来

假设我有一个函数,它调用一个阻塞的可中断操作。我想在超时的情况下异步运行它。也就是说,我想在超时到期时中断功能。 所以我正在尝试这样做: import scala.util.Try import scala.concurrent.Future def launch(f: () => Unit, timeout: Int): Future[Try[Unit]] = { val a ..
发布时间:2022-08-14 12:00:12 其他开发

像for_each这样的并行算法与周围的代码同步吗?

这是在思考Thread sanitizer warnings after using parallel std::for_each时出现的。 具有并行执行策略的std::for_each算法可以在实现创建的工作线程中执行代码。这些线程是否与调用线程对for_each的调用和返回同步,或者类似的情况?常识似乎表明它们应该这样做,但我在C++20标准中找不到保证。 考虑以下简单示例(try ..
发布时间:2022-05-17 09:08:03 C/C++开发

初始化IsolatedState会导致IlLegalStateException

我正在尝试在我的项目中使用IsolatedState中的Stately。例如,我有一个视图模型,其中包含一些要显示的数据结构。它是用数据结构实例初始化的,然后我尝试创建一个IsolatedState,以便能够应用用户操作和bg操作来从不同的线程变异相同的实例。 class ViewModel() { constructor(data: SomeData) : this() { ..

Kotlin协程中的可见性

我决定一头扎进Kotlin协程。我有一些关于能见度的问题。我理解,在没有ContinuationInterceptor的情况下,相同协程的不同部分可能由不同的线程执行。 如何保证挂起后的新线程具有正确的协程内部状态可见性? 例如: suspend fun doPost(customRatings : Map) : Int {...} f ..
发布时间:2022-05-13 10:55:52 其他开发

.NET-如何使用信号灯将一段代码一次仅限制为200个线程

我已经开发了一个.Net核心Web API,并且有一个场景,其中我有一个包含大约1000条记录的列表,其中每条记录都将被循环并调用第三方API。第三方API有一个限制,同时只能发送200个请求。因此,我使用了SemaphoreSlim,并将使用此代码块的线程数量限制在200个,并且运行良好。 如果有多个用户或多个请求进入此终结点,则第三方API将引发错误。 如何将SemaphoreSl ..
发布时间:2022-05-11 20:30:48 其他开发

关键部分与计算信号量有什么关系?

Some people说您应该使用互斥锁来保护共享资源(即临界区),而信号量应该用于发送信号,反之亦然。因此,据我所知,信号量与临界区无关。 然而,包括Wikipedia在内的许多其他文章都指出信号量是用来解决临界区问题的。说二进制信号量解决临界区问题是否更正确,因为它们基本上充当互斥锁,而计算信号量则是另一回事,不属于“资源保护器”类别? 推荐答案 计数信号量可用于资源保护,但 ..
发布时间:2022-05-11 20:26:54 其他开发

是否可以在调用future.get()之前销毁std::Promise?

我想知道是否可以调用promise.get_Future(),将那个未来移到其他地方(例如,移到一个向量中),甚至在调用future.get()之前就让承诺消亡。在下面的示例中,调用gateway->refreshWithCallback在线程中执行lambda,以便共享指针可以将Promise设置为释放,即使在第二个循环中还没有调用future.get(),这似乎是有效的,但我感到不安! ..
发布时间:2022-04-17 22:23:04 C/C++开发

并发散列映射中值的原子更新-如何?

任务是跟踪一些正在运行的进程。将该信息保存在内存中很好,因此我使用并发散列映射来存储该数据: ConcurrentHashMap RUNNING_PROCESSES = new ConcurrentHashMap(); 将新对象安全地放置到映射中是很好的,问题是这些进程的状态会发生变化,所以我必须不时地更新ProcessMetaData。 ..
发布时间:2022-04-17 20:10:17 Java开发

SWIFT 3 GCD锁定变量和BLOCK_AND_RELEASE错误

我使用SWIFT 3 GCD在代码中执行一些操作。但我经常收到_dispatch_call_block_and_release错误。我想这个错误背后的原因是因为不同的线程修改了相同的变量,但我不确定如何修复这个问题。以下是我的代码和解释: 我有一个变量可以在不同的线程中访问和修改: var queueMsgSent: Dictionary? = nil ..

同时运行具有多个参数的函数并聚合复杂结果

设置 这是我发布的有关访问多个进程的结果的问题的第二部分。 有关第一部分,请单击此处:Link to Part One 我有一个复杂的数据集,需要同时与各种约束集进行比较,但我遇到了多个问题。第一个问题是从我的多个进程中获得结果,第二个问题是使任何东西都不能只是一个极其简单的函数来并发运行。 示例 我有多个约束集需要与某些数据进行比较,我希望同时执行此操作,因为我有很多约 ..

克隆Arc时会发生什么情况?

我正在学习并发性,想澄清一下我对以下code example from the Rust book的理解。如果我说错了,请纠正我。 use std::sync::{Arc, Mutex}; use std::thread; use std::time::Duration; fn main() { let data = Arc::new(Mutex::new(vec![1, 2, 3 ..
发布时间:2022-04-08 20:25:18 其他开发