thread-safety 相关问题

如果一段代码仅以允许多个线程一致执行此代码的方式操作数据结构,则它是线程安全的。代码可以是线程安全的,有条件安全的(需要互斥)或不安全(只能由一个线程安全使用)。

如何使这个侵入式列表线程安全?

我正在尝试实现一种“信号和槽”机制(类似于Qt),该机制是使用侵入式链表实现的(以减少动态内存分配的数量...

回答 1 投票 0

使用多线程读写同一个文件而不使用mmap?

相关:多个线程读取同一文件 mmap可用于读写文件,但它不支持大文件,例如在32位系统上。 C 语言中的 stdio FILE*,或 Linux 语言...

回答 1 投票 0

在 Java 中使用 2 个线程打印奇偶数

我确信我的问题有多个答案。但是,我正在学习多线程的基本概念,并且我想出了下面的代码。 有两个线程:一个打印偶数,另一个打印

回答 1 投票 0

这段代码是线程安全的吗? (递增函数)

你觉得下面这段代码怎么样? #包括 #包括 使用命名空间 std; 静态 int cnt=0; 无效 incr_fun() { cnt=cnt+1; // 递增计数器 } 还有...

回答 1 投票 0

这段代码中使用Interlocked.Exchange写入的易失性读取值是否存在线程安全问题? [重复]

类任务跟踪器 { 私有易失性 ConcurrentBag _bag = new(); 公共异步任务 WaitAllAvailableAsync() { 等待 Task.WhenAll(Interlocked.Exchange(ref _bag, n...

回答 1 投票 0

自动化 InvokeRequired 代码模式

我痛苦地意识到人们需要在事件驱动的 GUI 代码中编写以下代码模式的频率,其中 私有无效DoGUISwitch() { // 巡航以通过exc…

回答 9 投票 0

java实例变量对其他线程不可见

我在一本书中遇到过这段代码。它指出 NoVisibility 可能会永远循环,因为 ready 的值可能永远不会变为 对读者线程可见。 我对这个说法感到困惑。为了...

回答 2 投票 0

我需要用非常量元素锁定 const 容器吗?

我开发了一个多线程应用程序(用 C++ 开发),它具有各种集合,其中容器(向量、映射等)在初始化时是 const,但容器中的元素...

回答 1 投票 0

如何高效且线程安全地实现单例? [重复]

单例类的通常模式是这样的 静态 Foo &getInst() { 静态 Foo *inst = NULL; if(inst == NULL) inst = new Foo(...); 返回*安装; } 然而,这是我的

回答 9 投票 0

为什么同步块会失效?

众所周知List不是线程安全的,我在下面所示的2个方法的代码中添加了synchronized。 1. 公共类 TestSyn { public static void main( String[] args ) 抛出 InterruptedException ...

回答 1 投票 0

在读锁区域写入 std::atomic 线程安全

我有一个 std::map>> mp。该映射可以并行读写,因此我使用读写锁来保证其线程安全。 我想知道我...

回答 1 投票 0

Java原子整数和C# Interlocked.Increment方法的区别

我只是想知道,在线程环境中 Java 和 C# 中递增静态变量的方式是否有区别? 在 Java 中,您使用原子 int:s 来进行此操作,而在 C# 中,您使用

回答 2 投票 0

TNetEncoding.GetBase64Encoding 中潜在的竞争条件?

我在Delphi源代码中发现了一段代码,它提出了一些关于多线程环境中线程安全性的问题。代码如下: 类函数 TNetEncoding。

回答 1 投票 0

从后台线程调用 DispatchObject 的方法安全吗?

请看下面的例子。 DispatchQueue 的 suspend() 方法是从主线程调用的。从后台线程调用resume() 方法。这安全吗? 我读过

回答 1 投票 0

直接 int 缓冲区的 put() 的绝对版本是否需要同步?

我使用了直接缓冲区,其中直接缓冲区的分配和使用如下: ByteBuffer 缓冲区 = ByteBuffer.allocateDirect(8192); IntBuffer buffer1 = buffer.asIntBuffer(); buffer1.limit(10...

回答 1 投票 0

Scala - 可变线程安全集合

我需要 Scala 中的可变线程安全 Map 和可变线程安全 List。我知道不可变集合默认是线程安全的。但是,我需要经常更新我的收藏,因为

回答 3 投票 0

InMemoryCache 在刷新(长时间运行)缓存期间返回旧缓存 .net Framework 4.8

我实现了以下InMemoryCache机制,如何确定如果为新缓存获取数据需要很多时间,其他线程能够毫无问题地获取旧缓存数据? 公共...

回答 1 投票 0

多线程和锁定(线程安全操作)

所以我有一个类,其中有一些方法,这些方法都使用锁定,以防止当有人使用我的类的实例并有多个线程访问它时发生奇怪的事情: 公开课

回答 5 投票 0

当我将 `ConcurrentDictionary` 转换为 `IDictionary` 时出现奇怪的并发行为

我有以下测试: 使用 System.Collections.Concurrent; 使用 System.Collections.Generic; 使用 System.Threading.Tasks; 公开课节目 { 公共静态无效Main() ...

回答 1 投票 0

如何在 C++ 中关闭/结束阻塞的 boost::asio::read 从串行端口操作,以便 std::thread 可以加入?

由于是同步读取,所以是阻塞操作,t1永远不会加入主线程。 主要问题: 如何转换此代码以使用简单的截止时间计时器? 如何简单地使用异步...

回答 1 投票 0

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