atomic 相关问题

原子操作是不可分割的。该术语用于描述数据库中的事务,多线程程序中的低级访问以及文件系统操作等。

(C++)memset 操作是“线程间发生在之前”吗?

C++ 内存操作,使用原子,针对变量 x。 std::atomic x; 字符缓存[1024]; 主题 1: memset(缓存, 0, 1024); x.store(20, std::memory_order::release); 话题2: 在...

回答 1 投票 0

清除对 stringbuilder 的原子引用的最有效方法是什么

如果我有一个对 StringBuilder 的 AtomicReference 定义如下: 私有 AtomicReference stringBuffer = new AtomicReference<>(new StringBuilder()); 哪种方法最适合

回答 1 投票 0

如果在悬空指针上调用“compare_exchange_weak”会发生什么?我教科书上的代码安全吗?

我觉得在这个用 C++ 实现无锁堆栈的示例中可能存在悬空指针:行动中的并发。作者安东尼·威廉姆斯为锁提供了一个开始-

回答 1 投票 0

全局变量是否由三个线程(2 个写入器,1 个读取器)访问,没有任何可能未定义的同步?

在windows/linux多线程C程序中,如果一个unsigned int全局变量在没有任何同步的情况下被三个线程访问,其中 线程1写入值0 线程 2 写入值

回答 1 投票 0

C/C++ 中原子按位与字节的最佳方法?

目前正在使用GCC查看C/C++中的原子操作,发现内存中自然对齐的全局变量具有原子读取和写入。 然而,我试图按位与全局

回答 1 投票 0

`std::memory_ordering`的值会影响原子对象上的编译器重新排序和硬件指令吗?

我想知道,std::memory_ordering类型的参数值只是提示编译器如何对代码进行重新排序,还是该值也影响操作原子操作的指令的选择...

回答 1 投票 0

如何用 C++ 在 Cortex-M4 上编写原子 RMW 序列

在下面的示例中,有 4 个版本对变量 a1 或 a2 (取决于版本)进行原子递增(或使用其他形式的 rmw 语句)。变量 a1 或 a2 可以与某些人共享...

回答 1 投票 0

C++ 使用获取-释放语义原子地执行 if-not-equal-then-increment?

下面我有一些锁的实现。 如果 m_counter != -1,则锁可用。如果此条件成立,则递增 m_counter。 是否可以原子地/CAS 和我们实现 != 和 ++...

回答 1 投票 0

我可以使用非原子布尔值来同步两个线程之间的共享向量,其中一个线程正在读取,另一个线程正在写入?

我希望创建一个快速同步模型来在两个线程之间共享消息队列。我正在查看一个包含一个向量、一个互斥体和一个脏标志的类,如下所示。 #包括 #

回答 2 投票 0

英特尔文档,原子访问描述没有意义

我想知道这句话的意思,解析。 对适合高速缓存行的高速缓存内存进行未对齐的 16 位、32 位和 64 位访问 我实在看不懂,想了解一下...

回答 1 投票 0

Python:原子操作

在有一组函数作为一个原子操作按顺序运行的场景中。如果其中任何一个由于某种原因失败,则操作必须回滚。 Python 有没有什么工具可以实现...

回答 1 投票 0

Cortex-M4:uint64_t的原子读写

我看了好几遍,Cortex-M4 不支持 LDRD/STRD 指令。但是当我尝试使用 gcc 13.2 时,我得到了这些说明。例如。对于 uint64_t,x3 = x1 给出: ldrd r2, [r0] @ x1.0_...

回答 1 投票 0

我总是需要通过互斥/原子来保护变量吗?

假设我有很多线程和一个简单的、可简单复制的非数组(基本类型,如 float、uint16_t 等)变量,称为 flag。一个且只有一个线程经常设置变量的值...

回答 2 投票 0

ConcurrentHashMap 原子获取、增量和替换

有没有一种简单的方法可以从 ConcurrentHashMap 中获取、递增和替换整数? ConcurrentHashMap 映射; 假设每个值都已经是初始值...

回答 2 投票 0

在node中使用webhooks时如何实现原子性?

我正在开发 MERN 应用程序。我正在尝试在其中实现条带订阅。 每当用户尝试使用 stripe checkout 会话付款时,就会调用 webhooks 路由并且数据库...

回答 1 投票 0

__sync_add_and_fetch 在树莓派 4b 上触发 sError 中断

当我使用 gcc 的 __sync_add_and_fetch 在我的树莓派 pi4b 上自动递增一个整数时,会生成以下代码: 172e4:c85f7e60 ldxr x0,[x19] 172e8:91000400 ...

回答 1 投票 0

标准 C++atomic_flag 在调用 notification_one() 时从 wait() 唤醒线程有多“公平”

当调用notify_one()时,是否有关于在atomic_flag上调用wait()的线程被唤醒的顺序的公平性信息。他们是在确切的时间醒来还是......

回答 3 投票 0

如何自动更改切片中子切片的值

我在golang中有一个包含二进制数据的字节片。现在该片中有一个 32 位整数充当锁。该切片来自映射内存,因此另一个进程正在访问相同的...

回答 0 投票 0

如果 std::atomic<T>::compare_exchange_weak 的期望值是非原子操作的返回值,它仍然是原子的吗?

head.load()->next 是否会破坏 while(head && !head.compare_exchange_weak(ptr, head.load()->next)); 中使用的 std::atomic::compare_exchange_weak 的原子性? ?我相信这是...

回答 2 投票 0

原子方法在 Java 中真的是全有还是全无?

这个问题更多的是关于术语。我使用原子作为并发术语,我这样描述它:“如果多个线程同时或顺序调用相同的方法,结果......

回答 1 投票 0

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