c语言中exchange函数,exchange

exchange

描述 (Description)

它原子地替换原子对象的值并获得先前保存的值。

声明 (Declaration)

以下是std :: atomic :: exchange的声明。T exchange( T desired, std::memory_order order = std::memory_order_seq_cst );

C++11T exchange( T desired, std::memory_order order = std::memory_order_seq_cst ) volatile;

参数 (Parameters)desired - 用于分配值。

order - 用于强制执行内存顺序约束。

返回值 (Return Value)

它在调用之前返回原子变量的值。

异常 (Exceptions)

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

例子 (Example)

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

#include

#include

#include

std::atomic ready (false);

std::atomic winner (false);

void count1m (int id) {

while (!ready) {}

for (int i=0; i<1000000; ++i) {}

if (!winner.exchange(true)) { std::cout << "thread #" << id << " won!\n"; }

};

int main () {

std::vector<:thread> threads;

std::cout << "spawning 10 threads that count to 1 million...\n";

for (int i=1; i<=10; ++i) threads.push_back(std::thread(count1m,i));

ready = true;

for (auto& th : threads) th.join();

return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564148.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 流类和流对象

程序中常用的 cin 和 cout&#xff0c;分别用于从键盘输入数据和向屏幕输出数据&#xff08;简称为标准 I/O&#xff09;。除此之外&#xff0c;程序还可以从文件中读入数据&#xff0c;以及向文件中写入数据&#xff08;简称为文件 I/O)。 数据输入和输出的过程也是数据传输的…

c语言float判断相等,c/c++ 比较两个浮点数相等

首先&#xff0c;两个 if 是一样的。浮点数和整数比较时&#xff0c;整数被转为浮点数。然后&#xff0c;i 为什么不等于 10.0&#xff1f;因为它只会等于这些值&#xff1a;>>> def gen():... i 0... while i < 10:... i 0.1... yield i...>>> L list…

C++ cout格式化输出

希望按照一定的格式进行输出&#xff0c;如按十六进制输出整数&#xff0c;输出浮点数时保留小数点后面两位&#xff0c;输出整数时按 6 个数字的宽度输出&#xff0c;宽度不足时左边补 0&#xff0c;等等。C 中的 cout 对象则使用流操作算子&#xff08;你也可以叫做格式控制符…

C语言按各科分数段统计人数,(更新啦)学校学生成绩统计通用模板(科目、分数、统计分数段等均可自定,班级数、学生人数不受限制)...

更新说明&#xff1a;1、增加了导入、导出数据功能。2、该功能可以实现版本更新时不用手动复制数据&#xff0c;可实现一键导入导出。导语微信号☞gdpc-service这是一款适用于学校平时统一考试成绩统计表。这是长期根据学校的需求设计出的成绩统计&#xff0c;学生成绩清晰明了…

C++ 输出单个字符

在 C 程序中一般用 cout 和输出运算符 << 实现输出&#xff0c;cout 流在内存中有相应的缓冲区。但有时用户还有特殊的输出需求&#xff0c;例如只输出一个字符。 ostream 类除了提供上一节介绍过的用于格式控制的成员函数外&#xff0c;还提供了专门用于输出单个字符的…

ndows10同时打印多份文档,Windows10如何同时重命名多个文件

在Win10系统中整理重要文件时&#xff0c;很多用户都会对文件进行重命名&#xff0c;以便节省更多的时间。而如果文件数量非常多的话&#xff0c;我们就需要对其进行批量重命名。那么&#xff0c;这该如何操作呢&#xff1f;今天&#xff0c;小编就给大家分享一下Win10系统同时…

C++ 读取结束的判断

cin 可以用来从键盘输入数据&#xff1b;将标准输入重定向为文件后&#xff0c;cin 也可以用来从文件中读入数据。在输入数据的多少不确定&#xff0c;且没有结束标志的情况下&#xff0c;该如何判断输入数据已经读完了呢&#xff1f; 从文件中读取数据很好办&#xff0c;到达…

c语言指针算法分析怎么写,什么叫指针算法啊??

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Pointer arithmetic should not be used.This rule refers to explicitly calculating pointer values. Any such pointer value then has thepotential to access unintended or invalid memory addresses. This is an area where…

C++ 读取单个字符

get() 是 istream 类的成员函数。 int get();此函数从输入流中读入一个字符&#xff0c;返回值就是该字符的 ASCII 码。如果碰到输入的末尾&#xff0c;则返回值为 EOF。 EOF 是 End of File 的缩写。istream 类中从输入流&#xff08;包括文件&#xff09;中读取数据的成员函…

C++ 读入一行字符串

getline() 是 istream 类的成员函数&#xff0c;它有如下两个重载版本&#xff1a; istream & getline(char* buf, int bufSize); istream & getline(char* buf, int bufSize, char delim);第一个版本从输入流中读取 bufSize-1 个字符到缓冲区 buf&#xff0c;或遇到\…

C语言数理逻辑题目,数学逻辑推理题整理,看看你能答对多少

年龄的秘密A、B、C三人的年龄一直是一个秘密.将A的年龄数字的位置对调一下,就是B的年龄;C的年龄段两倍是A与B两个年龄的差数;而B的年龄是C的10倍.请问&#xff1a;A、B、C三人的年龄各是多少?失误的程序员高先生是一个高级程序员&#xff0c;但是他最近设计的三款机器人却出了…

C++跳过(忽略)指定字符

ignore() 是 istream 类的成员函数&#xff0c;它的原型是&#xff1a; istream & ignore(int n 1, int delim EOF);此函数的作用是跳过输入流中的 n 个字符&#xff0c;或跳过 delim 及其之前的所有字符&#xff0c;哪个条件先满足就按哪个执行。两个参数都有默认值&…

c语言题库325,2012年二级C语言笔试模拟325

单项选择题1. 线性表L&#xff1a;(a1&#xff0c;a2&#xff0c;a3&#xff0c;…&#xff0c;ai&#xff0c;…&#xff0c;an)&#xff0c;下列说法正确的是( )。A) 每个元素都有一个直接前件和直接后件B) 线性表中至少要有一个元素C) 表中诸元素的排列顺序必须是由小到大…

C++ 查看输入流中的下一个字符

peek() 是 istream 类的成员函数&#xff0c;它的原型是&#xff1a; int peek();此函数返回输入流中的下一个字符&#xff0c;但是并不将该字符从输入流中取走相当于只是看了一眼下一个字符&#xff0c;因此叫 peek。 cin.peek() 不会跳过输入流中的空格、回车符。在输入流已…

android 自定义库,Android自定义Log库

背景我们在开发的时候肯定会打一些Log&#xff0c;特别是在调试代码或者bug的时候&#xff0c;我们都会打一些Log日志来记录&#xff0c;但是当我们发布正式版本的时候&#xff0c;尼玛&#xff0c;要一行一行的去掉&#xff0c;这就尴尬了。懵逼状态励志封装Log库本来想使用gi…

C++ 处理输入输出错误

处理输入输出时&#xff0c;我们必须预计到其中可能发生的错误并给出相应的处理措施。 当我们输入时&#xff0c;可能会由于人的失误&#xff08;错误理解了指令、打字错误等&#xff09;、文件格式不符、错误估计了情况等原因造成读取失败。当我们输出时&#xff0c;如果输出设…

android jackson 解析json字符串,android:json解析的两个工具:Gson和Jackson的使用小样例...

1.简单介绍json是android与server通信过程中经常使用的数据格式&#xff0c;比如。例如以下是一个json格式的字符串&#xff1a;{"address":"Nanjing","name":"NUPT","students":[{"name":"stu1","…

各种语言的 Hello World

学习编程的小伙伴们可能会发现&#xff0c;不敢我们学习哪种语言&#xff0c;我们的第一个程序都是Hello World!&#xff0c;所以我们非常有必要清楚的知道Hello World!使用每一种编程语言的写法。 使用C语言实现Hello World! #includeint main(void){printf("Hello Wor…

Android拦截浏览器广告,浏览器拦截广告的几种方法

悬浮闪动的弹窗广告和牛皮癣一样铺满全屏的低质广告&#xff0c;极大地破坏了浏览网页的体验。通过启用浏览器自带的广告拦截功能&#xff0c;或为浏览器安装广告拦截插件&#xff0c;能够还原网页原本的清爽真容。浏览器自带-安卓广告拦截操作说明口碑比较好的 Via、夸克和 X浏…

C++ 深拷贝和浅拷贝

对于基本类型的数据以及简单的对象&#xff0c;它们之间的拷贝非常简单&#xff0c;就是按位复制内存。例如&#xff1a; class Base{ public:Base(): m_a(0), m_b(0){ }Base(int a, int b): m_a(a), m_b(b){ } private:int m_a;int m_b; };int main(){int a 10;int b a; /…