atomicity相关内容

Django无法回退带有原子事务的try-exception块

我在Django中的一个观点对6-7个表执行保存操作。我希望这些事务是原子性的,如果第五或第六次事务失败,我想回滚所有以前的保存。 该视图包含一个try-except块来处理引发的异常。 它看起来像这样: @ transaction.atomic def my_view(request): sid = transaction.savepoint() try: 表1。 sav ..
发布时间:2020-10-16 02:01:10 Python

Java中参考变量的读写原子性

首先从 引用的写入和读取始终是原子的,而与 无关不管它们是实现为32位还是64位值。 在这种情况下,给定Employee类和 Employee emp = calculate();此类中的方法称为validate,该方法返回对Employee实例的引用。 对变量的写操作是原子的,这意味着除非原子操作,否则其他线程都无法访问该变量操作完成,并且在给定的分配示例 ..
发布时间:2020-10-07 21:27:50 Java开发

AtomicReferenceArray的工作原理

我想知道是否可以使用AtomicReferenceArray替代ConcurrentLinkedQueue(如果可以使用有界结构)。 我目前有类似的东西: ConcurrentLinkedQueue队列=新的ConcurrentLinkedQueue(); 公共无效商店(价格,工具,对象[]格式){ 对象[]元素= {价格,工具, ..
发布时间:2020-10-07 21:09:22 Java开发

我如何处理我的有效负载以在Cassandra中以原子性/一致性在多个表中插入批量数据?

我必须为客户设计数据库,该客户在接下来的24个月内要通过多个供应商获取数百万种材料的价格。因此,该数据库将在未来24个月内每天存储特定供应商提供的每种物料的价格。现在我要解决多个用例,因此我创建了多个表以最佳方式解决每个用例。 现在,将数据定期插入这些表中是很大的一部分(比如说1k个项目),这应该确保数据的一致性,也就是应该将数据插入所有表或表中。没有一个。失败的情况应标记为“失败”,没有插入内 ..

Java原子性一个好的“比较和交换"框架?

你们认为这是原子操作的良好通用框架吗? 您还认为说正确吗?关于Java应用程序,单个字节代码是原子的,因为无法使用单个JVM一次执行一个以上的字节代码?因此,如果if仅有一个字节代码,那么if else指令将是原子的吗? // CAS, Compare and Swap public abstract class CASOperation { protected T valueAtS ..
发布时间:2020-09-13 19:44:21 Java开发

打包结构中的变量可以原子读取吗?

我正在为Cortex M0(ARM)CPU编写代码,并且32位读取/写入是原子的.现在我想知道何时读/写8bit/16bit变量,它们是否也保证是原子的?我的直觉说是的,因为它们在内部与32位段对齐,所以CPU不可能需要两条单独的指令来读取/写入它们. 但是我也碰巧在打包结构中存储了很多变量以节省内存,并且变量可能没有在32位边界上对齐,因此16位值的每半都可能在不同的部分中 使用压缩 ..
发布时间:2020-09-13 19:37:13 其他开发

原子释放可以“被覆盖"吗?

说我有atomic i;线程A使用memory_order_release执行原子存储/交换.接下来,线程B使用memory_order_release执行原子存储.线程C执行原子fetch_add(0,memory_order_acquire); 线程C是否从线程 A和B 或仅线程B 获取依赖项? 解决方案 仅B(我假设通过"next"表示原子的修饰顺序为A -> B - ..
发布时间:2020-09-13 19:27:51 C/C++开发

带有Couchbase的Spring中的原子计数器

是否可以使用Couchbase的原子计数器使用弹簧连接器?目前,我有一个用于特定文档类型的存储库,并且希望每个文档都具有一个原子计数器.我知道Java SDK提供了该功能,但是我找不到与Spring等效的操作. 解决方案 我知道Spring不支持计数器,但是编写自己的存储库非常简单: @Repository public class CountersRepository { ..
发布时间:2020-09-13 19:27:31 Java开发

x86-64 LFENCE的使用

我正在尝试了解使用RDTSC/RDTSCP测量时间时使用围栏的正确方法.关于SO的几个与此相关的问题已经得到了详尽的解答.我经历了其中的一些.我也阅读了有关同一主题的这篇非常有用的文章: 但是,在另一个在线博客中,有一个在x86上使用LFENCE代替CPUID的示例.我想知道LFENCE如何防止早期的商店污染RDTSC的测量结果. 例如 LFENCE/CPUID RDTS ..
发布时间:2020-09-12 22:30:06 其他开发

PCIe总线上的写入是原子的吗?

我是PCIe的新手,所以这可能是一个愚蠢的问题.这似乎是询问PCIe接口的相当基本的信息,但是我很难找到答案,因此我猜测我缺少一些使答案显而易见的信息. 我有一个系统,其中有一个ARM处理器(主机)通过PCIe(设备)与Xilinx SoC通信. SoC中的端点也是ARM处理器. 外部ARM处理器(主机)将通过PCIe写入SoC的ARM处理器(设备)的寄存器空间.这将命令SoC做各种事 ..
发布时间:2020-09-07 03:02:26 其他开发

ARM:是从int原子写/读吗?

不幸的是,在ARM体系结构上,我不确切知道它是什么芯片,是32位int读写原子吗? 关于对基本类型的读/写是否有某种保证? 解决方案 它应该是原子的,除非该int存储在未对齐的地址上. ..
发布时间:2020-09-07 02:26:02 其他开发

在golang中对uint8的读写是原子的吗?

与标题中一样,是否涉及原子uint8的读写操作? 逻辑上,显然必须是单个cpu指令才能读取和写入8位变量.但是无论如何,两个内核可以同时从内存中读取和写入数据,是否可以通过这种方式创建陈旧的数据? 解决方案 不能保证对本机类型的访问是在任何平台原子上进行的.这就是为什么有 sync/atomic 的原因.另请参见内存模型文档中的建议. 自动设置值的一般方法示例(播放) var ..
发布时间:2020-07-12 06:29:40 其他开发

为什么获取语义仅用于读取而不是写入? LL/SC如何获取CAS锁定而又不对商店的关键部分进行重新排序?

首先,请考虑发布语义.如果数据集受到自旋锁的保护(互斥锁等-不管使用哪种确切的实现;就目前而言,假定0表示空闲,而1-忙).更改数据集后,线程将0存储到自旋锁地址.为了在将0存储到自旋锁地址之前强制所有先前动作的可见性,使用释放语义执行存储,这意味着在进行此存储之前,所有其他线程都应可以看到所有先前的读写操作.这是实现细节,是用完全存储屏障还是单个存储操作的释放标记来完成. (我希望)毫无疑问是清 ..

在运行时中断汇编指令

当发生CPU中断时,如果已确认,则通过保存当前地址位置来处理该中断,然后再跳入处理程序.否则它将被忽略. 我想知道汇编指令调用是否被中断. 例如, mvi a, 03h ; put 3 value into acc. in 8080 assembly 单行指令可以中断吗?或者,如果不是,那是原子的?? 是否总是保证“一行汇编指令"始终是原子的? 如果没有"lock ..

多个线程之间共享的枚举

我有一个在多个线程之间共享的枚举: public enum Action { Read, Write, None } 在一个类中,我有一个Action类型的变量: public Action _action; 这是一个共享变量,即它已更新并从多个线程读取. 例如,我从一个线程执行 _action = Action.Read 还有另一个: ..
发布时间:2020-06-26 19:04:44 C#/.NET

.net System.MemberwiseClone和互锁的写入

在执行值类型数组的MemberwiseClone时: var arr = new double[100]; 如果使用在其他线程上的互锁写入修改了这些双打,那么MemberwiseCloned副本是否有被撕裂的双打的风险?我不关心值是否有些陈旧,只是撕裂以及互锁和memberwiseclone之间的相互作用(我想这可以转换为内存blit类型的操作?) 解决方案 是.在32位操作系 ..
发布时间:2020-06-26 19:04:42 C#/.NET

功能请求:gwan.h中包含的atomicAdd()函数

在G-WAN KV选项中,KV_INCR_KEY将使用第一个字段作为主键. 这意味着G-WAN核心中已经内置了原子自动递增的功能,以使该主索引正常工作. 最好将此功能打开以供servlet使用,即包含在gwan.h中. 这样做,像我这样的ANSI C新手可以从中受益. 解决方案 感谢吉尔(Gil)的有用指导. 现在,我可以自己做. 我更改了persistence.c中 ..
发布时间:2020-06-17 19:19:19 其他开发

对于64位Windows上的32位应用程序,是64位操作是原子操作

因此,该文档说,运行64位Windows可为您提供64位原子性: http://msdn.microsoft.com/en-us/library/windows/desktop/ms684122%28v=vs.85%29.aspx 此帖子表明您必须运行64位应用程序才能获得64位原子性: 32/64位的原子性 我正在开发Win32控制台应用程序。因此,如果我理解正确,我必须使用32位类 ..
发布时间:2020-05-31 20:52:21 其他开发