`

什么是原子性

    博客分类:
  • java
 
阅读更多

原子操作是不可分割的,在执行完毕不会被任何其它任务或事件中断。在单处理器系统(UniProcessor)中, 能够在单条指令中完成的操作都可以认为是" 原子操作",因为中断只能发生于指令之间。这也是某些CPU指令系统中引入了test_and_set、test_and_clear等指令用于临界资源 互斥的原因。

在对称多处理器(Symmetric Multi-Processor)结构中就不同了,由于系统中有多个处理器在独立地运行,即使能在单条指令中完成的操作也有可能受到干扰。

 

在x86 平台上,CPU提供了在指令执行期间对总线加锁的手段。CPU芯片上有一条引线#HLOCK pin,如果汇编语言的程序中在一条指令前面加上前缀"LOCK",经过汇编以后的机器代码就使CPU在执行这条指令的时候把#HLOCK pin的电位拉低,持续到这条指令结束时放开,从而把总线锁住,这样同一总线上别的CPU就暂时不能通过总线访问内存了,保证了这条指令在多处理器环境中 的原子性。

 

简单来讲:

cpu是一条一条指令执行:

如果读、写:则是两条指令,在并发情况下可能出问题

原子性则是一条指令,完成读写操作。

一般cpu指令为testAndSet

java concurrent中,原子包中方法名为compareAndSet等

分享到:
评论

相关推荐

    如何保证数据库同步中目的端交易提交的原子性

    数据库同步是IT领域中一个关键的操作,特别是在分布式系统或者数据迁移场景下,确保目的端交易的原子性至关重要。原子性是ACID(原子性、一致性、隔离性、持久性)事务特性之一,它保证了数据库操作要么全部完成,...

    14、深入理解并发可见性、有序性、原子性与JMM内存模型

    深入理解并发可见性、有序性、原子性与JMM内存模型深入理解并发可见性、有序性、原子性与JMM内存模型深入理解并发可见性、有序性、原子性与JMM内存模型深入理解并发可见性、有序性、原子性与JMM内存模型深入理解并发...

    并发二:原子性、可见性、有序性.pdf

    "并发二:原子性、可见性、有序性" 本文主要讲解了Java内存模型(JMM)中关于并发编程的三个基本概念:原子性、可见性和有序性。 原子性 原子性是指一个操作不会被线程调度机制打断,一旦开始,就一直运行到结束...

    java 并发操作之原子性与可视性1

    在Java并发编程中,原子性和可见性是两个关键的概念,它们直接影响着多线程环境下的程序行为和数据一致性。理解这两个概念对于编写高效且线程安全的代码至关重要。 首先,让我们详细探讨一下原子性。原子性指的是一...

    STM32的串口变量的原子操作问题

    当使用中断方式处理串口接收任务而非DMA时,由于对缓冲区大小变量(size)的操作不是原子性的,即在同一时间可能发生多个任务对该变量进行读取和修改,这可能导致以下情况: 1. **中断中的++操作**:在串口接收中断...

    Java多线程中提到的原子性和可见性、有序性1

    Java多线程编程中,原子性、可见性和有序性是三个关键的概念,它们确保了多线程环境下的正确性。 1. 原子性(Atomicity) 原子性指的是一个操作不可被中断,要么全部执行,要么完全不执行。在Java中,非原生类型的...

    kotlinx.atomicfu,在kotlin中使用原子操作的惯用方法.zip

    1. **AtomicInt**: 这个类提供了对整型值的原子操作,如`incrementAndGet()`用于原子性地增加1,`decrementAndGet()`用于原子性地减少1,以及`getAndIncrement()`、`getAndDecrement()`等方法,可以在不锁住整个对象...

    C++多线程原子操作

    `Interlocked.Increment(ref safeInstanceCount)`会原子性地增加`safeInstanceCount`的值,而`Interlocked.Decrement(ref safeInstanceCount)`则是原子性地减少它。这样,即使在多线程环境下,这些操作也不会因为...

    原子物理学学习指导(pdf)

    多电子原子的复杂性在于电子间的相互作用以及电子与原子核之间的相互作用。由于电子间的排斥力,多电子原子的电子排布遵循泡利不相容原理和洪特规则。泡利不相容原理指出,一个原子轨道最多只能容纳两个自旋相反的...

    易语言线程安全之原子锁与读写锁

    易语言提供了原子加减、原子比较并交换(CAS)等原子操作,确保了这些操作的线程安全性。 读写锁则是一种更高级的同步机制,它允许多个线程同时读取共享资源,但只允许一个线程进行写入。这种锁的特性提高了多线程...

    大学讲义 原子物理讲义

    ##### 1.1.1 物质的原子性 古代哲学家如德谟克利特提出了物质由不可分割的基本粒子构成的思想,这一思想在近代得到了证实。然而,直到19世纪末,随着科学技术的发展,人们才逐渐认识到原子的存在。19世纪初,英国...

    原子物理学期末试题及答案

    首先,"4.doc"可能是一份试题文档,其中包含了关于原子结构的基础问题,例如:如何解释氢原子的稳定性和能级分布?这涉及到尼尔斯·玻尔的原子模型,该模型通过引入量子化的能量状态成功解释了氢原子光谱的线性分布...

    10 有福同享,有难同当—原子性.pdf

    本章将通过“有福同享,有难同当—原子性”这一主题,深入探讨并发编程中的核心概念——原子性,以及与之相关的线程安全和并发编程的三大特性。 并发编程的三大特性包括原子性、可见性和有序性。这些特性是理解和...

    原子经济反应PPT课件.pptx

    在化学领域中,原子经济性的提出是化学工业绿色化和可持续发展的一个重要里程碑。原子经济性,这一概念由B.M. Trost教授于1991年正式提出,致力于在化学反应设计中实现原料分子中每一个原子的最大化利用,以减少副...

    多线程程序中的原子操作

    1. **Guaranteed Atomic Operations**:一些基本的内存读写操作是被硬件提供的原子性保证所支持的,如读写单个字节的操作。 2. **Bus Locking**:使用LOCK#信号和LOCK指令前缀来锁定总线,确保某些特定操作(如读-...

    论文研究 - 原子核指导原子的电子结构

    本研究支持原子核指导原子的电子结构的挑衅性思想。 随着原子序数的增加,化学元素的原子摩尔体积演化服从原子的电子结构规则,与此同时,中子多余的加到原子核上的同时发生了镜面演化。 诸如d嵌段过渡金属的原子...

    原子物理学(第四版)

    3-7中还讨论了不确定性原理,解释了电子的动能如何不能太小,否则会破坏原子核,从而否定原子核由电子构成的可能性。 3-8部分探讨了在原子核尺度上电子的动能,这是通过不确定性原理估算的。3-9至3-13章节则深入到...

    原子物理的相关PPT

    5. **原子的稳定性与放射性**:某些原子核不稳定,会自发地通过α衰变、β衰变或γ衰变转化为其他元素,这一过程称为放射性衰变,是核物理学的基础。 6. **量子数**:主量子数、角量子数、磁量子数和自旋量子数共同...

Global site tag (gtag.js) - Google Analytics