fetch_add

描述 (Description)

它自动原子地将参数添加到存储在原子对象中的值,并获得先前保存的值。

声明 (Declaration)

以下是std :: atomic :: fetch_add的声明。T fetch_add (T val, memory_order sync = memory_order_seq_cst) volatile noexcept;

C++11T fetch_add (T val, memory_order sync = memory_order_seq_cst) noexcept;

以下是std :: atomic :: fetch_add的声明(仅限原子成员) 模板专业化)。T fetch_add (ptrdiff_t val, memory_order sync = memory_order_seq_cst) volatile noexcept;

C++11T fetch_add (ptrdiff_t val, memory_order sync = memory_order_seq_cst) noexcept;

参数 (Parameters)arg - 用于添加算术加法的另一个参数。

order - 用于强制执行值的内存顺序。

返回值 (Return Value)

它以* this的修改顺序返回紧接此函数效果之前的值。

异常 (Exceptions)

No-noexcept - 这个成员函数永远不会抛出异常。

例子 (Example)

在下面的示例中为std :: atomic :: fetch_add。#include

#include

#include

std::atomic data;

void do_work() {

data.fetch_add(1, std::memory_order_relaxed);

}

int main() {

std::thread th1(do_work);

std::thread th2(do_work);

std::thread th3(do_work);

std::thread th4(do_work);

std::thread th5(do_work);

th1.join();

th2.join();

th3.join();

th4.join();

th5.join();

std::cout << "Ans:" << data << '\n';

}

样本输出应该是这样的 -Ans:5

c语言fetch函数的用法,fetch_add相关推荐

  1. php函数find的用法,c语言find函数的用法详解

    c语言find函数的用法详解 C语言之find()函数 find函数用于查找数组中的某一个指定元素的位置. 比如:有一个数组[0, 0, 5, 4, 4]: 问:元素5的在什么位置,find函数 返回 ...

  2. C语言“fread”函数的用法?

    C语言"fread"函数的用法为"size_tf read(void *buffer,size_t size,size_t count,FILE *stream)&quo ...

  3. linux之getcwd函数解析,Linux 中C语言getcwd()函数的用法

    Linux 中C语言getcwd()函数的用法 先来看该函数的声明: #include char *getcwd(char *buf,size_t size); 介绍: 参数说明:getcwd()会将 ...

  4. c语言get()的作用,c语言get函数的用法有哪些

    C语言中gets从标准输入设备读字符串函数,可以无限读取,不会判断上限,今天学习啦小编在这里为大家介绍C语言get函数的用法,欢迎大家阅读! c语言get函数的用法:int getc(FILE *st ...

  5. R语言 diag函数的用法

    R语言 diag函数的用法 我们今天写一下关于R语言中diag函数的用法: (1)diag函数可以用来提取矩阵的对角元素,并将它保存成向量的格式.值得注意的是,如果所要提取的矩阵不是方阵的话,diag ...

  6. C语言 strstr函数的用法及模拟实现strstr函数

    C语言 strstr函数的用法及模拟实现strstr函数 一.strstr函数的用法 二.模拟实现strstr函数的功能 一.strstr函数的用法 1.strstr函数原型:char* strstr ...

  7. 计算机科学类专升本复习之“C语言fopen函数的用法”详解(初稿)

    C语言fopen函数的用法,C语言打开文件详解 在C语言中,"操作文件" 之前 必须 先"打开文件"; 所谓"打开文件",就是让 " ...

  8. c语言fread函数,C语言“fread”函数的用法?

    C语言"fread"函数的用法? C语言"fread"函数的用法为"size_tf read(void *buffer,size_t size,siz ...

  9. c语言memcpy是什么,C语言memcpy函数的用法

    介绍 memcpy是memory copy的缩写,意为内存复制,在写C语言程序的时候,我们常常会用到它.它的函原型如下: void *memcpy(void *dest, const void *sr ...

最新文章

  1. CPU的插槽类型LGA与Socket 的区别
  2. iOS Hacker obfuscator-llvm Xcode集成配置
  3. 提问的智慧 如何得到好的帮助(转)
  4. navicat导出数据到oracle,使用Navicat premium导出oracle数据库中数据到SQL server2008数据库中...
  5. uni-app使用input框 v-model双向绑定不起作用解决方案
  6. 利用多线程实现linux下C语言的聊天室程序:
  7. PAT 乙级1001 害死人不偿命的(3n+1)猜想
  8. 1192. [HNOI2006]鬼谷子的钱袋【进制】
  9. centos6.5 mysql配置整理
  10. matlab 三维矩阵 reshape,matlab中的reshape及3D数组reshape的注意事项转载
  11. MAC中让右键菜单出现终端(命令行)打开文件夹的功能
  12. Python之 多重循环
  13. RN 开发遇到的问题之传参函数错误Invariant Violation: Maximum update depth exceeded.
  14. 【硬件】电容和电感串联接地的作用
  15. Unity中实现3D拾取功能及其原理
  16. 求1到100之间所有能被3整除的整数的和
  17. 美图秀秀经典版 4.0.1下载
  18. 中国电脑教育报:网上开店与购物秘籍
  19. Apple iWork(Pages、Numbers、Keynote)11.0 发布
  20. 1110. 删点成林

热门文章

  1. jdbc 中 excute executeUpdate的用法作用
  2. Reveal越狱+非越狱使用
  3. 【项目】数仓项目(七)
  4. 中国联通国家数据中心河北石家庄IDC机房(四星级)
  5. MAC安装MacPorts 卡在“正在运行软件包脚本”的解决办法(100%完美解决)
  6. QQ面板上的所有链接按钮、qq聊天窗口中的那些超级链接打不开的原因
  7. 活着感悟,加一堆各种想像
  8. 嘉立创科技PCB打样究竟快在哪?
  9. Arcgis中实现平面坐标向经纬度转换
  10. 《Temple Run》系列衍生放置cq9电子游戏《Temple Run:Idle Explorers》于双平台推出试玩