当前位置: 首页 > news >正文

淮北做网站公司/网络营销策略ppt

淮北做网站公司,网络营销策略ppt,网站建设公司yu,wordpress 添加字体在多线程程序中使用原子变量std::atomic可以非常方便地避免并发访问时的线程安全问题&#xff08;data races&#xff09;&#xff0c;此外还可以通过指定不同的std::memory_order指定线程间数据同步的粒度。 原子变量 template <class T> struct atomic;常用方法&…

在多线程程序中使用原子变量std::atomic可以非常方便地避免并发访问时的线程安全问题(data races),此外还可以通过指定不同的std::memory_order指定线程间数据同步的粒度。

原子变量

template <class T> struct atomic;

常用方法:

	void store (T val, memory_order sync = memory_order_seq_cst);	// 修改值T load (memory_order sync = memory_order_seq_cst);				// 赋值T exchange (T val, memory_order sync = memory_order_seq_cst);	// 获取值的同时修改值T fetch_add (T val, memory_order sync = memory_order_seq_cst);	// 加上一个值T fetch_sub (T val, memory_order sync = memory_order_seq_cst);	// 减去一个值T operator++() / T operator++ (int);							// 自增,i++ / ++iT operator--() / T operator-- (int);							// 自减,i-- / --i

简单示例:

#include <iostream>
#include <thread>
#include <atomic>
using namespace std;atomic<int> foo(0); // 正确的初始化方式void put_foo(int x)
{foo.store(x);
}void get_foo()
{int x;do{x = foo.load();} while (x == 0);cout << "foo:" << x << endl;
}int main()
{thread t1(get_foo);thread t2(put_foo, 1000);t1.join();t2.join();return 0;
}

memory_order

编译器对代码进行优化时可能对代码重新排序,CPU也可能对指令进行重新排序、延缓执行、缓存等等,在多线程环境下这种指令的重排序有可能造成问题。

于是引入了内存屏障(Memory Barrier),它确保 Barrier 之前的指令都执行完了,Barrier 之后的指令才执行。从而确保了线程间数据的同步方式是与我们代码中的逻辑一样的。

并不是所有的多线程场合都需要内存屏障,比如 C++ 的 shared_ptr 的引用计数,我们只关心当前的引用数量,而不关心引用计数何时增加了何时减少了。原子变量通过指定 memory_order 参数来指定这种同步的粒度。详细内容可以参考这篇文章,写的很清楚。

typedef enum memory_order {memory_order_relaxed,   // relaxedmemory_order_consume,   // consumememory_order_acquire,   // acquirememory_order_release,   // releasememory_order_acq_rel,   // acquire/releasememory_order_seq_cst    // sequentially consistent
} memory_order;
http://www.lbrq.cn/news/1434061.html

相关文章:

  • 网站怎样做移动端适配/百度关键词排名提升工具
  • 外贸网店建站模板/新东方
  • 道真住房与城乡建设局网站/西安网络推广营销公司
  • wordpress使用cdn菜单消失/廊坊优化外包
  • 网站运营前期中期后期/谷歌seo是什么
  • 南阳市建设局网站/推广普通话手抄报内容大全资料
  • 房地产网站欣赏/网站优化种类
  • 镇平建设局网站/域名注册网站有哪些
  • 结构设计网站/线上营销策略有哪些
  • 医疗机构网站以患者做宣传/网上营销新观察网
  • 烟台做网站建设电话/惠州seo排名外包
  • 网站推广的名词解释/网络营销评价的名词解释
  • 深圳网站设计兴田德润i简介/代写企业软文
  • 长沙做网站备案/百度收录怎么查询
  • 个人网站建设法律规定/qq群排名优化软件
  • 长沙网站建设开发/深圳网站优化推广方案
  • 太原金茂大厦做网站的/品牌推广公司
  • 温州网站制作网站/营销必备十大软件
  • 重庆微信网站建设价格/软文街官方网站
  • 网站建设包括的内容/百度指数查询
  • 专业的网站制作中心/微信上怎么做广告推广
  • 西安网站建设 玖佰网络/品牌营销策略四种类型
  • wordpress 如何搬家/阳城seo排名
  • 网站主服务器所在地地址/广告推广平台赚取佣金
  • 如何建设一个网站/seo免费入门教程
  • 做网站租服务器需要多少钱/深圳seo优化外包公司
  • wordpress清新文艺主题/单页网站seo如何优化
  • 网站静态代码检查 站长工具/大批量刷关键词排名软件
  • 网站建设开发票开什么品名/网站前期推广
  • sns网站设计/爱站权重查询
  • Coze Studio 概览(十)--文档处理详细分析
  • IPA1299至为芯替代TI ADS1299的脑机接口芯片
  • 定制客车系统线上购票系统功能设计
  • MySQL数据库简介
  • 重学React(五):脱围机制一
  • .NET Core MVC中CSHTML