`
aigo
  • 浏览: 2645666 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

[VC]原子操作InterlockedXXX接口中的Acquire和Release区别

阅读更多

例如:InterlockedIncrement接口提供了两个扩展接口,分别是InterlockedIncrementAcquire和InterlockedIncrementRelease。

对于PC上的CPU(比如x86、x64)来说,三者没有区别,效果是等价的,但是对于特定的服务器CPU(比如intel 安腾),带后缀的InterlockedXXX接口速度更快

 

具体见MSDN解释:

https://msdn.microsoft.com/en-us/library/ff540496.aspx

 

其他参考:

What's the difference between InterlockedCompareExchange Release() and Acquire()?

http://stackoverflow.com/questions/9764181/whats-the-difference-between-interlockedcompareexchange-release-and-acquire

 

InterlockedIncrement vs InterlockedIncrementAcquire vs InterlockedIncrementNoFence

http://stackoverflow.com/questions/25487373/interlockedincrement-vs-interlockedincrementacquire-vs-interlockedincrementnofen

 

Acquire and release sound like bass fishing terms, but they also apply to memory models

https://blogs.msdn.microsoft.com/oldnewthing/20081003-00/?p=20663

 

 

分享到:
评论

相关推荐

    统一下单并支付接口(alipay.acquire.createandpay)1

    【统一下单并支付接口(alipay.acquire.createandpay)】是支付宝提供的一个核心功能,用于商家集成支付宝支付系统,实现在线交易的过程。该接口适用于各种类型的商家,包括电商平台、线下零售店等,允许它们一次性...

    C++ 11 开发中的 Atomic 原子操作.rar_C++11、原子_atomic c++_c++ atomic使用_c++

    C++11提供了五种不同的内存顺序:`memory_order_relaxed`、`memory_order_consume`、`memory_order_acquire`、`memory_order_release`和`memory_order_seq_cst`。不同的内存顺序影响了多线程间的可见性和同步,...

    老版本:统一预下单接口(alipay.acquire.precreate)1

    【统一预下单接口(alipay.acquire.precreate)1】是支付宝提供的一个关键支付接口,主要用于商家在用户实际支付前进行预处理,以便于提高支付效率和用户体验。本文将详细阐述该接口的功能、适用对象、业务术语以及...

    Memory-barriers.pdf

    文档中还提到了一些具体的宏定义,如RELAXED、CONSUME、ACQUIRE、RELEASE、ACQ_REL和SEQ_CST,这些宏定义通常与C++11标准库中的std::memory_order枚举相对应,用于指示编译器和处理器在执行原子操作时,对内存操作的...

    JAVA 流行的原子1

    标题中的“JAVA 流行的原子1”可能是指Java中流行的原子操作的使用和重要性,特别是在多处理器系统和多线程编程中的应用。随着多核处理器的普及,确保并发安全变得越来越重要,而原子操作就是解决这一问题的有效手段...

    收单关闭接口(alipay.acquire.close)1

    在上面的样例中,商户调用收单关闭接口,传递交易号、交易金额和关闭原因。支付宝服务器接收到请求,验证交易信息和关闭原因,并返回交易状态信息。 收单关闭接口(alipay.acquire.close)是支付宝(中国)网络技术...

    收单查询接口(alipay.acquire.query)1

    【支付宝收单查询接口(alipay.acquire.query)1详解】 支付宝收单查询接口是支付宝提供的一项服务,用于商户查询已处理的支付订单状态和详细信息。这个接口版本为1.4,由支付宝(中国)网络技术有限公司开发并拥有...

    VC控制扫描仪

    在Windows操作系统中,扫描仪通常通过WIA(Windows Image Acquisition)或TWAIN接口与软件进行通信。TWAIN是业界广泛接受的标准,适用于各种图像输入设备,而WIA则是Windows系统内置的图像获取接口,相对更简单易用...

    收单退款接口(alipay.acquire.refund)1

    在实际应用中,商家需要根据自身业务逻辑,结合上述接口文档,进行适当的错误处理和状态更新,以确保退款操作的顺利进行。同时,遵循支付宝的安全规范,保护用户数据安全,是使用接口时不可忽视的重要环节。

    收单撤销接口(alipay.acquire.cancel)1

    收单撤销接口的阅读对象是商户的开发者和技术人员,他们需要了解该接口的使用方法、请求参数、返回参数等信息,以便正确地使用该接口。 1.3 业务术语 在收单撤销接口中,涉及到一些业务术语,例如: * 收单:指...

    VC实现 扫描仪控制

    在VC中,我们可以利用MFC(Microsoft Foundation Classes)库来方便地访问和使用WIA服务。 以下是一些关键知识点: 1. **创建WIA服务对象**:首先,我们需要使用CoCreateInstance函数来实例化IWiaDevMgr接口,这是...

    mm_jpeg_dbg.rar_memory

    本文将深入探讨标题"mm_jpeg_dbg.rar_memory"所暗示的知识点,即内存顺序(memory order)在原子操作(atomic operation)中的重要性,以及与之相关的`stdatomic.c`和`mm_jpeg_dbg.c`源代码文件。 内存顺序是处理多...

    统一预下单接口(alipay.acquire.precreate).pdf

    ### 统一预下单接口(alipay.acquire.precreate)知识点总结 #### 1. 文档概述 - **文档名称**:统一预下单接口(alipay.acquire.precreate)文档 - **版本号**:1.6 - **发布者**:支付宝(中国)网络技术有限公司 ##...

    android模拟PV操作

    P(信号量减操作)和V(信号量加操作)实际上是两个原子操作,用于控制对共享资源的访问。在Dijkstra的原始定义中,信号量是一个整数值,代表可用资源的数量。P操作会尝试减少信号量值,如果信号量非负,则操作成功...

    支付宝当面付接口资料

    上次上传了一个不全,这次...统一下单并支付接口(alipay.acquire.createandpay) 收单查询接口(alipay.acquire.query) 收单撤销接口(alipay.acquire.cancel) 收单退款接口(alipay.acquire.refund) 及java,c#的接口例程

    PV操作(无错误)

    在操作系统中,PV操作由P操作(即wait或acquire)和V操作(即signal或release)组成,是实现线程互斥与协作的关键。 P操作(等待操作): 1. 当一个线程执行到P操作时,它会检查信号量的值。 2. 如果信号量的值大于...

    一些经典的pv操作题目

    PV操作由两个原子操作组成:P(Wait)操作和V(Signal)操作。 1. P操作(Wait/Decrement):当一个线程想要使用共享资源时,它首先执行P操作。这相当于对信号量进行减一操作。如果信号量的值大于零,则减一后继续...

    C++多线程编程介绍,技巧及注意要点--Part2.pptx

    C++多线程编程是现代软件开发中不可或缺的一部分,特别是在高性能计算和并发处理场景中。C++11和C++14引入了丰富的多线程支持,包括原子变量(atomic variables)和内存顺序(memory ordering),这两个概念是理解和...

    pv操作解析 了解pv操作

    pv操作在IT行业中,特别是在操作系统和并发编程领域,是一个非常重要的概念。它是“信号量”(Semaphore)的一个特例,由荷兰计算机科学家Edsger Dijkstra提出的“泛型信号量”(Generic Semaphore)机制中的两个...

    pv操作的实现

    在操作系统领域,PV操作,即P(Wait)和V(Signal)操作,是荷兰计算机科学家Edsger Dijkstra提出的同步原语,用于解决多进程之间的同步问题。它们是基于信号量(Semaphore)机制的一种实现,主要用于管理共享资源,...

Global site tag (gtag.js) - Google Analytics