concurrency 相关问题

在计算机科学中,并发性是系统的属性,其中可以在重叠的时间段中执行多个计算。计算可以在同一芯片中的多个核上执行,在同一处理器上抢占时间共享线程,或者在物理上分离的处理器上执行。

C++:一个关于memory_order_relaxed的问题

我正在比较 Anthony Williams 的《C++ Concurrency in Action》一书和本次演讲。 我发现后者的一些内容与前者的解释不符,我想问一下如何来......

回答 2 投票 0

Swift 并发:推迟任务直到加载某些数据

我已经使用 Swift Concurrency 2 年了,但不知道如何解决这种情况。 在名为 APIManager 的类中,有一个执行网络调用的执行方法。 当...

回答 1 投票 0

如何降低Postgres数据库的一致性,以加快索引较多的表的更新速度

我有一个 Postgres 表,其中包含大量索引列(总共大约 100 列)。任何行更新都会导致所有索引被更新,这对于数据库引擎来说是大量的工作。 我认为基于

回答 1 投票 0

在并发编程中,通过使用锁,程序有时可能会使用超出必要数量的处理器?

这是一道考试题(模拟考试,不是真正的考试)。这是关于使用多核处理器的并发编程以及使用锁的问题。 在并发编程中可能吗

回答 2 投票 0

对本地对象的静态初始化进行call_once

我已经解决了关于何时使用 call_once 的问题以及关于静态初始化的线程安全性的问题。看来,如果本地可调用对象是静态初始化的,那么它的服务非常好......

回答 1 投票 0

使用 HttpClient 并发调用 API 时执行中途终止

我在使用 HttpClient 从同一服务器托管的另一个 Web 服务调用 Web 服务时遇到问题。 场景是,有一个 REST webService,让我们说“WebService1”,该服务...

回答 2 投票 0

是否可以阻止 Erlang 进程传递消息?

在 Erlang 中模拟同步通信有一个非常常见的技巧: %% 处理“发送者” 参考 = make_ref(), '接收者' ! {自我(),参考,消息}, 接收 {ack, Ref} -> 确定结束, ... %% P...

回答 1 投票 0

你能监听缓存一致性流量来实现链接加载和条件存储吗?

我有点想为 x86-64 实现一种 LL/SC 形式(最有可能是 Saphire/Emerald Rapids)。看来缓存拥有执行此操作所需的所有信息,但我需要知道缓存行何时

回答 1 投票 0

更简单的 Golang 并发模式

我一直在尝试创建一个函数,使多个外部 api 调用并发,并牢记以下内容 返回遇到的第一个错误 聚合 api 调用的结果 这是我的

回答 1 投票 0

从RwLock访问T<Vec<RwLock<T>>>

我有一个应该在多个线程中传递的结构。它的结构如下: pub 结构状态{ 人类:RwLock>, 动物:RwLock 我有一个应该在多个线程中传递的结构。其结构如下: pub struct State{ humans: RwLock<Vec<RwLock<Human>>, animals: RwLock<Vec<RwLock<Animal>> } 这个想法是,如果线程只写入单个 Vec 元素,则不会锁定整个 Vec,而是只能读取相应的元素和所有其他元素。另一方面,当从 Vec 插入/删除时,它肯定会被完全锁定。 现在我还有一个函数,它返回一个特定的Human。为简单起见,它始终返回 N^2 元素。 impl State{ pub fn get_some_element(&self, N: usize) -> &Human{ // here i am a bit lost, because I run into temporary variables that cannot be passed, when unwrapping the LockGuards. } } 我的一个想法是使用tokio::sync::RwLockReadGuard::map: let humans = self.humans.read().await; RwLockReadGuard::map(humans, |f|{ &f.get(N^2) } 由于临时变量的存在,甚至无法返回(因此 LockGuard 到相应的元素)。 您能在这里帮助我并就如何有效解决该问题提供一些建议吗?谢谢你。 您无法从锁中获得简单的参考。即使在嵌套锁情况之外,这也不起作用: fn read_lock(lock: &std::sync::RwLock<i32>) -> &i32 { lock.read().unwrap() } 原因是read().unwrap()给你一个RwLockReadGuard。它看起来有点像共享引用,但事实并非如此。特别是,它是一个具有自己的析构函数的结构,该析构函数在执行时会释放锁。您无法通过 Rust 中的简单引用获得这种过期后行为。 另外,只是为了强调这一点:嵌套锁在这里没有什么区别。仍然必须执行“一些”代码来负责释放“每个”锁。只要看一下签名,我们就应该在返回类型中看到 RwLockReadGuard<RwLockReadGuard<Human>> 形式的内容。不幸的是,这似乎无法直接实现。 stdlib RwLock 没有任何 map 函数,并且 tokio 仅当您可以将内部内容作为简单引用获取时才有用,而不是作为受锁保护保护的另一件事(并且 async 也有点碍事)。因此,在这一点上,我建议要么将返回类型更改为泄漏更多数据结构的类型(例如返回锁而不是对内容的引用),如评论中所建议的;或者更改接口以使用闭包来处理获取的引用(类似于 with 上的 RefCell 方法及类似方法):fn with_element<F: FnOnce<&Human>>(&self, n: usize, f: F) { ... }

回答 1 投票 0

在Erlang中,发送到self是原子的吗?

据我所知,Erlang 进程总是会在其邮箱中接收第一条[到达]的消息,这些消息是与模式匹配的。我很好奇是否可以用它来获得以下假设:...

回答 1 投票 0

什么时候应该在通道上使用互斥锁?

在过去的几周里,我一直在努力解决一个(不太)简单的问题: 什么时候最好使用sync.Mutex,相反,什么时候最好使用chan? 看来问题也不少

回答 2 投票 0

AtomicReference<ArrayList>困难和替代方案

所以在我写的各种好玩的程序中,我都遇到过并发修改异常。 在我天真的尝试解决这个问题时,我使用了 Atomic 而不是某种

回答 2 投票 0

异步事件循环可以在后台运行而不暂停Python解释器吗?

asyncio 的文档给出了两个如何每两秒打印“Hello World”的示例: https://docs.python.org/3/library/asyncio-eventloop.html#asyncio-hello-world-callback https://docs.

回答 3 投票 0

SWIFT 任务延续误用:泄露了其延续 - 对于代表?

我正在尝试使用异步/等待功能扩展我的类,但在运行时控制台中出现错误: SWIFT 任务延续误用:query(_:) 泄露了其延续! 下面是课程...

回答 2 投票 0

AVAssetExportSession 在第一次运行时停止

在我的 iOS 应用程序中,我使用 AVAssetExportSession 来压缩视频文件 如果让exportSession = AVAssetExportSession(资产:singleVideoComposition,预设名称:

回答 1 投票 0

.NET并发词典交换价值

是否有类似于 ConcurrentDictionary 和 Interlocked.Exchange(...) 的数据结构,它允许您自动设置新值并检索旧值...

回答 1 投票 0

是否有 SemaphoreSlim 版本或其他方法可以让同一线程进入下游?

我正在重构旧的同步 C# 代码以使用异步库。当前的同步代码大量使用了锁。外部方法通常调用内部方法,两者都锁定同一个对象...

回答 1 投票 0

Spring-batch 流程/一步后拆分

我正在构建一个 spring-batch 解决方案,其中包含以下过程: 步骤 1:将一个列表拆分为多个列表 步骤2:处理每个子列表 步骤 3:合并子列表 生成的子li...

回答 4 投票 0

我需要帮助在 SwiftUI 应用程序中构建数据。我的结构中有一个变异函数,但“if let”改变了副本而不是原始的

我正在构建一个 SwiftUI 应用程序,我的一个模型有一个变异函数,其目的是在发生更改时帮助更新 UI。例如,如果用户更新他们的用户名,我只想...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.