我刚刚看到这样的代码/* whatever */ foo(std::string const& s) { // stuff auto L = s.length(); int i{/* init based on L */}; while (i < L) { / ...
我刚刚看到这样的代码/* whatever */ foo(std::string const& s) { // stuff auto L = s.length(); int i{/* init based on L */}; while (i < L) { / ...
如果我有一个预定义的集合并且它的值仅通过索引访问和更新,为什么我会得到Collection was modified异常。 没有线程向集合中删除或添加项目。 异常发生在行var values = new List<double> { amount.Values[0], amount.Va ...
我在 class 中有一个私有方法 static,它具有 static 的所有方法。它是一个帮助程序 class,可以帮助进行日志记录和其他操作。 这个 helper class 将被多个线程调用。 我不明白所讨论的方法如何在没有锁的情况下安全地与多个线程一起工作。 我了解 static 方法内部的 ...
我正在创建一个服务器,将 TcpStream 对象存储在 Vec 中以备后用。问题是 function 侦听新连接并将它们添加到 Vec 中永远在一个单独的线程中运行并且不允许其他线程读取Vec。 在当前示例中,服务器接受连接但不允许主线程读取连接向量。我努力让 listen function 以 ...
这段代码线程安全吗? 我需要一个同步块或类似的东西吗? source1 和 source2 无尽的 Kotlin 流 ...
我有一个 Java 应用程序,它在多线程环境中填充数据库(每秒大约 100 次插入)。 我有一个部分正在使用它在表上插入以获取主键: 然后代码将值作为字符串获取并将其解析为 integer 并将其用作主键。 代码没有在选择之间进行提交。 获取key的代码同步到private static fina ...
我在 Blazor 服务器应用程序中的范围服务中有 2 个字典,我用来管理多租户的 state。 我注意到用户在不同线程上修改字典可能存在并发问题。 我想我倾向于将它们保留为普通词典并在修改或迭代时锁定同步根。 如果我要将一个项目添加到包含 class 的集合中,它会是: 或者: 然后,如果我要将 ...
我知道 C++“魔术静态”模式保证局部变量的线程安全初始化,因为 C++11。无论局部如何初始化,这都适用吗? 我有一个内部静态分析检查器,它抱怨上面显示的第三种样式的线程安全性,但我认为没关系,我正在寻找确认。 谢谢。 ...
前言:(我不知道这个词是否合适) 我知道List不是线程安全的,并且知道并发 collections 的存在,例如ConcurrentBag , ConcurrentQueue等,并且在某种程度上知道如何使用锁。 我只想知道如果我这样做会有什么危险。 比如说,如果我有 2 个线程同时运行,一个向L ...
给定的代码尝试在获取锁的同时运行即发即弃Task ,以避免缓存元素出现竞争条件。 在调试整个应用程序时,我注意到奇怪的行为 - 使用相同的键到达相同的断点。 也就是说,我不确定ConcurrentDictionary保证只有一个编写器将应用于该元素以及锁定在Task.Run块内的假设是否会向我保证只 ...
我正在阅读 ConcurrentQueue 的源代码,这里有一些代码: GetHeadTailPositions() 可能想要在特定时间获取 4 个变量,但是,在“where”循环中有 4 个比较,考虑以下序列: 然后我们得到这些变量的不稳定版本。 这个方法稳定吗? 如何在没有锁定的情况下在特定 ...
考虑以下代码块 如果多个线程正在调用Get() - 该方法是线程安全的吗? 此外 - 在 linq 查询中调用.ToList()会使其成为线程安全的吗? return this.myList.Where(i => i.Init == true).Select(i => i.Value) ...
我很难完全理解 Boost ASIO 和 strands。 我的印象是,只要处理程序被包裹在一条链中,对socket::async_read_some()的调用就是安全的。 这似乎不是这种情况,因为代码最终会抛出异常。 在我的情况下,第三方库正在进行Session::readSome()调用。 我在 ...
我有一个线程(这是 C 实现中的一个 Pthread)每 5 秒从文件中读取一个值。 在关闭期间,这会导致关闭进程想要删除线程但由于它正在休眠,它必须等待 5 秒才能完成休眠然后删除的问题。 我如何在收到关闭信号后立即停止线程,即使它处于睡眠状态? 我已经有一个条件变量,其中线程仅在条件为真时才休 ...
我想切换到后台以加载图像(或执行任何其他任务),然后返回到主线程以向我的视图发出命令以显示 smth。 例子: PS我不想使用: 因为它实际上并没有切换到后台线程,它在主线程上做所有事情(不影响UI),但我需要一个后台线程 ...
我正在使用QtConcurrent::run (我知道 QtConcurrent 的其他 API 内置了对进度报告的支持,但由于其他原因我不能使用它们)。 在与主 GUI 线程不同的内部运行操作。 我还需要这个操作来通知 GUI 线程取得的进展。 所以我所做的是为我想要的操作创建一个单独的 func ...
我创建了一个协程扩展 function 以固定的时间间隔在后台定期运行一个协程。 现在,我在存储库中运行一个协程,如下所示: 现在的问题是,我如何正确地从后台按需停止这个协程? 我已经尝试cancelAndJoin()协同程序但是我现在如何引用在后台运行的特定协同程序? 提前致谢。 ...
该函数应该获取在线程上工作的 HTML 文档。 ExecuteScriptAsync 需要管理一个任务,如果我在单独的线程上运行它会导致执行错误。 我也不知道如何同步获取 HTML 内容。 哪个是最佳实践解决方案? ...
我有一个通用的List<T> ,其中存储了来自网络套接字的实时流数据。 我想将通用列表中的数据存储到数据库并清除列表,以便可以存储新的流数据而不会填满我的机器内存。 如果我枚举列表以将数据发送到数据库,我会遇到异常,因为在我尝试枚举或清除列表时数据正在添加到列表中。 如果我在列表上应用锁 ...
据我了解,EGL14.makeCurrent() 函数将线程映射到我们创建的 EGLContext。 我们执行的每个 EGL 操作都将在绑定到线程的 EGLContext 上执行。 执行用 Dispatchers.Default 包装的 EGL 操作是否安全? 根据文档,“”Dispatchers ...