cost 214 ms
奇怪的“Collection was modified”异常,尽管它从未被修改过 - Strange `Collection was modified` exception though it never gets modified

如果我有一个预定义的集合并且它的值仅通过索引访问和更新,为什么我会得到Collection was modified异常。 没有线程向集合中删除或添加项目。 异常发生在行var values = new List<double> { amount.Values[0], amount.Va ...

Static 会员 function 和线程安全 - Static member function and thread safety

我在 class 中有一个私有方法 static,它具有 static 的所有方法。它是一个帮助程序 class,可以帮助进行日志记录和其他操作。 这个 helper class 将被多个线程调用。 我不明白所讨论的方法如何在没有锁的情况下安全地与多个线程一起工作。 我了解 static 方法内部的 ...

从 Rust 中的方法内部创建新线程时如何正确使用 self - How to properly use self when creating a new thread from inside a method in Rust

我正在创建一个服务器,将 TcpStream 对象存储在 Vec 中以备后用。问题是 function 侦听新连接并将它们添加到 Vec 中永远在一个单独的线程中运行并且不允许其他线程读取Vec。 在当前示例中,服务器接受连接但不允许主线程读取连接向量。我努力让 listen function 以 ...

使用 PostgreSQL 中的值序列获取主键约束冲突(从 Java 调用) - Getting primary key constraint violation using sequence for value in PostgreSQL (called from Java)

我有一个 Java 应用程序,它在多线程环境中填充数据库(每秒大约 100 次插入)。 我有一个部分正在使用它在表上插入以获取主键: 然后代码将值作为字符串获取并将其解析为 integer 并将其用作主键。 代码没有在选择之间进行提交。 获取key的代码同步到private static fina ...

复制前锁定整个字典或部分字典 (SyncRoot) - Lock entire Dictionary or part of before copying (SyncRoot)

我在 Blazor 服务器应用程序中的范围服务中有 2 个字典,我用来管理多租户的 state。 我注意到用户在不同线程上修改字典可能存在并发问题。 我想我倾向于将它们保留为普通词典并在修改或迭代时锁定同步根。 如果我要将一个项目添加到包含 class 的集合中,它会是: 或者: 然后,如果我要将 ...

C++“魔术静态”模式是否适用于所有初始化 styles? - Does the C++ "magic static" pattern work for all initialization styles?

我知道 C++“魔术静态”模式保证局部变量的线程安全初始化,因为 C++11。无论局部如何初始化,这都适用吗? 我有一个内部静态分析检查器,它抱怨上面显示的第三种样式的线程安全性,但我认为没关系,我正在寻找确认。 谢谢。 ...

在一个线程中添加到列表并在不锁定的情况下从另一个线程中删除列表有什么危险? - What's the danger of adding to a list in one thread and removing from another without locking it?

前言:(我不知道这个词是否合适) 我知道List不是线程安全的,并且知道并发 collections 的存在,例如ConcurrentBag , ConcurrentQueue等,并且在某种程度上知道如何使用锁。 我只想知道如果我这样做会有什么危险。 比如说,如果我有 2 个线程同时运行,一个向L ...

运行任务时访问 ConcurrentDictionary 元素 - Accessing ConcurrentDictionary element while running Task

给定的代码尝试在获取锁的同时运行即发即弃Task ,以避免缓存元素出现竞争条件。 在调试整个应用程序时,我注意到奇怪的行为 - 使用相同的键到达相同的断点。 也就是说,我不确定ConcurrentDictionary保证只有一个编写器将应用于该元素以及锁定在Task.Run块内的假设是否会向我保证只 ...

如何在没有锁定的情况下在特定时间获得稳定版本的多个值? - How to get a stable version of mutiple values at a particular time without lock?

我正在阅读 ConcurrentQueue 的源代码,这里有一些代码: GetHeadTailPositions() 可能想要在特定时间获取 4 个变量,但是,在“where”循环中有 4 个比较,考虑以下序列: 然后我们得到这些变量的不稳定版本。 这个方法稳定吗? 如何在没有锁定的情况下在特定 ...

boost asio:当处理程序受链保护时,调用 tcp::socket::async_read_some() 是否线程安全 - boost asio: Is it thread safe to call tcp::socket::async_read_some() when handler is protected by a strand

我很难完全理解 Boost ASIO 和 strands。 我的印象是,只要处理程序被包裹在一条链中,对socket::async_read_some()的调用就是安全的。 这似乎不是这种情况,因为代码最终会抛出异常。 在我的情况下,第三方库正在进行Session::readSome()调用。 我在 ...

停止处于睡眠状态的 pthread - Stopping a pthread which is in sleep

我有一个线程(这是 C 实现中的一个 Pthread)每 5 秒从文件中读取一个值。 在关闭期间,这会导致关闭进程想要删除线程但由于它正在休眠,它必须等待 5 秒才能完成休眠然后删除的问题。 我如何在收到关闭信号后立即停止线程,即使它处于睡眠状态? 我已经有一个条件变量,其中线程仅在条件为真时才休 ...

Swfit:使用分离任务后如何返回主线程 - Swfit: How to return to main thread after using Detached Task

我想切换到后台以加载图像(或执行任何其他任务),然后返回到主线程以向我的视图发出命令以显示 smth。 例子: PS我不想使用: 因为它实际上并没有切换到后台线程,它在主线程上做所有事情(不影响UI),但我需要一个后台线程 ...

发出 Qt 信号的线程安全 - Thread safety of emitting Qt signals

我正在使用QtConcurrent::run (我知道 QtConcurrent 的其他 API 内置了对进度报告的支持,但由于其他原因我不能使用它们)。 在与主 GUI 线程不同的内部运行操作。 我还需要这个操作来通知 GUI 线程取得的进展。 所以我所做的是为我想要的操作创建一个单独的 func ...

如何停止在后台定期运行的协程 - How to stop a coroutine running periodically in the background

我创建了一个协程扩展 function 以固定的时间间隔在后台定期运行一个协程。 现在,我在存储库中运行一个协程,如下所示: 现在的问题是,我如何正确地从后台按需停止这个协程? 我已经尝试cancelAndJoin()协同程序但是我现在如何引用在后台运行的特定协同程序? 提前致谢。 ...

通用列表并发访问 - 在存储数据时清除列表的一部分 - Generic list concurrent access - clear part of list while data is getting stored

我有一个通用的List<T> ,其中存储了来自网络套接字的实时流数据。 我想将通用列表中的数据存储到数据库并清除列表,以便可以存储新的流数据而不会填满我的机器内存。 如果我枚举列表以将数据发送到数据库,我会遇到异常,因为在我尝试枚举或清除列表时数据正在添加到列表中。 如果我在列表上应用锁 ...

在 android 中的 Dispatchers.Default 上运行 EGL 命令可以吗? - Is it okay to run EGL commands on Dispatchers.Default in android?

据我了解,EGL14.makeCurrent() 函数将线程映射到我们创建的 EGLContext。 我们执行的每个 EGL 操作都将在绑定到线程的 EGLContext 上执行。 执行用 Dispatchers.Default 包装的 EGL 操作是否安全? 根据文档,“”Dispatchers ...


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