首页 > TAG信息列表 > atomicity

NVME(学习笔记七)—Atomicity Operation

5.21.1.10 Write Atomicity Normal 这个特性控制AWUN和NAWUN参数的操作。设置的属性值在set Feature命令的Dword 11中表明。 如果提交Get Feature命令查询这个特性,属性值填写到completion应答CQE的Dword 0中返回。   【补充知识】 在Feature中设置原子操作的位置在Feature Identi

C#-访问对象成员和原子性

>从C# specification中我们知道引用读/写是原子的.在访问对象成员的语句中,引用也会被原子访问吗? 我认为是的,因为它也是一种隐式引用读取,编译器在为其生成代码时必须提供原子性.>在同一条语句中,访问对象以访问其成员是否会导致对象引用被保留,以便在另一个线程创建新实例时不会

mysql-在单个字段上可靠的de / increment所需的隔离级别

假设我们有一个下表, +----+---------+--------+ | id | Name | Bunnies| +----+---------+--------+ | 1 | England | 1000 | | 2 | Russia | 1000 | +----+---------+--------+ 而且,在指定的时间段(例如2小时)内,有多个用户删除了兔子. (因此,返回了0个兔子,最多100

为什么在Linux中禁用spin_lock和spin_unlock之间的中断?

我正在阅读Linux信号量的实现.由于原子性,信号和等待(在源代码中上下移动)使用自旋锁.然后我看到Linux在spin_lock_irqsave中禁用了中断,并在spin_unlock中重新启用了中断.这让我感到困惑.我认为,在关键部分禁用中断确实没有意义. 例如,过程A(当前处于活动状态)获取了锁定,过程B(已

Java中的原子性和内存顺序

我是Java的新手,目前正在阅读《 Java:初学者指南》第六版.我在Java的原子性和内存顺序方面遇到了一些困惑. 在本书涉及多线程的示例中,对共享资源(例如,共享变量)的并发访问不会同步,共享资源也不会被明确标记(例如,原子或易失性或类似的东西).例如,在“尝试此15-1”(第519页)中,对

Java中变量的读写原子性

这是另一个question of mine的跟进. @templatetypedef回答了问题(赞赏),他在回答中写道: As a note – atomicity does not mean “all other threads will be blocked until the value is ready. It means all other threads will either see the state purely before the o

java-我想将computeIfPresent和putIfAbsent都集成到一个原子函数中

workObjectMap.computeIfPresent(key, (k,v) -> { v.memberIdSet.addAll(memberIdSet); v.memberPositionSet.addAll(memberPositionSet); return v; }); // If it.remove() in run() is called at this point, // there is a risk of the same work being don

C 11内存模型是否允许将松弛的原子负载提升到循环之外?

考虑以下代码: #include <atomic> extern std::atomic<int> i; void f(void) { while (!i.load(std::memory_order_relaxed)) ; } 我正在寻找C 11标准的引文,该标准说不允许编译器将循环转换为 if (!i.load(std::memory_order_relaxed)) { while (1) ; }

使用Java的Atomic类进行模块化增量

我很惊讶Java的AtomicInteger和AtomicLong类没有模块化增量的方法(因此在达到限制后值会回绕到零). 我认为我必须遗漏一些明显的东西.最好的方法是什么? 例如,我想在线程之间共享一个简单的int,我希望每个线程能够增加它,比如mod 10. 我可以创建一个使用同步/锁的类,但有更好,更简单

java – J bloch使用的“失败原子性”是什么以及它对于不可变对象有何益处?

刚刚看到下面的声明作为不可变对象的好处 Immutable object always have “failure atomicity” (a term used by Joshua Bloch) : if an immutable object throws an exception, it’s never left in an undesirable or indeterminate state. 任何人都可以更详

python – Django – 使用事务原子进行回滚保存

我正在尝试创建一个保存对象的视图,但是如果引发一些异常,我想撤消该保存.这是我试过的: class MyView(View): @transation.atomic def post(self, request, *args, **kwargs): try: some_object = SomeModel(...) some_object.save()

Python解包线程安全吗?

在Python中是否像x,y = self.mytuple atomic这样的操作? 或者在分配期间可以通过另一个线程修改self.mytuple,导致x引用self.mytuple的第一个版本,y引用第二个版本? 我正在使用Python 3.解决方法:只有当Python代码不处理项目访问时,它才是线程安全的. 解包由一个字节码处理: >>> def

c – 是x;线程安全的?

如果我在一个线程中更新变量,如下所示: receiveCounter; 然后从另一个线程我只读过这个变量并将其值写入GUI. 这样安全吗?或者这个指令可能在中间被中断,所以当另一个线程读取时,receiveCounter中的值是错误的?它必须如此正确,因为它不是原子的,它是几个指令. 我不关心同步读取和写入,

C 11 std :: atomic copy构造函数的线程安全性

我在使用原子容器时遇到了一些问题,并看到了this link. 有没有理由说std :: atomic不是可复制构造的?解决方案似乎是this,它们只是将T值传递给具有原子加载功能的非原子构造函数(如果我没有记错的话). 那么一般来说,这个拷贝构造函数线程是否安全? template<typename T> struct Mobi

原子比较,多处理器,C/C++(Linux)

我在多处理器系统上的共享内存x中有一个变量. void MyFunction(volatile int* x) { if (*x != 0) { // do something } } 其他进程(可能在不同的处理器上)将使用gcc内置的原子操作(如__sync_bool_compare_and_swap等)写入x. 我想我遇到了一些缓存并发问题,有时需要一些

C如果一个线程写完切换bool一次,是否可以安全地在一个其他线程的循环中读取bool?

我正在构建一个非常简单的程序作为练习. 这个想法是通过递归迭代其所有内容,并总结目录(及其子目录)中包含的所有文件的大小来计算目录的总大小. 为了向用户显示程序仍在工作,此计算在另一个线程上执行,而主线程打印一个点.每秒一次. 现在主线程当然需要知道什么时候应该停止打印点

java – 有没有理由不总是使用AtomicInteger作为数据成员?

在像Android这样的多线程环境中,一个简单的int变量可能被多个线程操纵,在哪种情况下仍然有理由使用int作为数据成员? 作为局部变量的int,限于具有对它的独占访问权的方法的范围(因此开始和完成修改它总是在同一个线程中),在性能方面完全有意义. 但作为数据成员,即使由访问器包装,它

c – 我可以同时复制一个shared_ptr吗?

我知道在两个单独的线程中复制和重置单个shared_ptr是有问题的,但是有两个线程试图创建同一个shared_ptr对象的副本.它需要同步吗?参考计数器在这里是否正常工作? std::shared_ptr<T> global_t(new T()); // Thread 1 std::shared_ptr<T> t1(global_t); do something with t1 // T

如何以编程方式确定“写入”系统调用对特定文件是否是原子的?

在某些情况下,编码器不能依赖于原子的系统调用,例如如果文件在NFS文件系统上. (约NFS Overview, FAQ and HOWTO Documents).但是大多数数据库工作最终都需要原子系统调用. (参见Atomicity of database systems). 是否有标准(和OS独立)方式确认写入(和其他系统调用)在C(或python)中

java – AtomicReference.compareAndSet()用于确定什么?

说你有以下课程 public class AccessStatistics { private final int noPages, noErrors; public AccessStatistics(int noPages, int noErrors) { this.noPages = noPages; this.noErrors = noErrors; } public int getNoPages() { return noPages; } public i

c# – 可以为空的boolean(bool?)被认为是线程安全的吗?

正如标题所说,在可读/写操作中被认为是可以为空的布尔(bool?)?我通过C#文档搜索无济于事.我知道只有某些原始类型在执行读/写操作时保证原子性,而Bool是这些类型中的一种.当然,可空的布尔是一个不同的故事;毕竟他们是对象所以我会说不,但……有人可以对这个问题有所了解吗?解决方法:C#