pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

C++ 讀取和寫入 int 是原子的嗎?

Are C++ Reads and Writes of an int Atomic?(C++ 讀取和寫入 int 是原子的嗎?)
本文介紹了C++ 讀取和寫入 int 是原子的嗎?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有兩個線程,一個更新一個 int 一個讀取它.這是一個與讀寫順序無關的統計值.

I have two threads, one updating an int and one reading it. This is a statistic value where the order of the reads and writes is irrelevant.

我的問題是,我是否需要同步訪問這個多字節值?或者,換句話說,可以部分寫入完成并被中斷,然后讀取發生.

My question is, do I need to synchronize access to this multi-byte value anyway? Or, put another way, can part of the write be complete and get interrupted, and then the read happen.

例如,考慮一個值 = 0x0000FFFF,它的增量值為 0x00010000.

For example, think of a value = 0x0000FFFF that gets incremented value of 0x00010000.

有沒有我應該擔心值看起來像 0x0001FFFF 的時候?當然,類型越大,這種事情發生的可能性就越大.

Is there a time where the value looks like 0x0001FFFF that I should be worried about? Certainly the larger the type, the more possible something like this to happen.

我一直同步這些類型的訪問,但很好奇社區的想法.

I've always synchronized these types of accesses, but was curious what the community thinks.

推薦答案

起初人們可能認為對本地機器大小的讀取和寫入是原子的,但有許多問題需要處理,包括處理器/內核之間的緩存一致性.在 Windows 上使用 Interlocked* 等原子操作,在 Linux 上使用等效操作.C++0x 將有一個原子"模板來將它們包裝在一個漂亮的跨平臺界面中.現在,如果您使用的是平臺抽象層,它可能會提供這些功能.ACE 可以,請參閱類模板 ACE_Atomic_Op.

At first one might think that reads and writes of the native machine size are atomic but there are a number of issues to deal with including cache coherency between processors/cores. Use atomic operations like Interlocked* on Windows and the equivalent on Linux. C++0x will have an "atomic" template to wrap these in a nice and cross-platform interface. For now if you are using a platform abstraction layer it may provide these functions. ACE does, see the class template ACE_Atomic_Op.

這篇關于C++ 讀取和寫入 int 是原子的嗎?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

What is the fastest way to transpose a matrix in C++?(在 C++ 中轉置矩陣的最快方法是什么?)
Sorting zipped (locked) containers in C++ using boost or the STL(使用 boost 或 STL 在 C++ 中對壓縮(鎖定)容器進行排序)
Rotating a point about another point (2D)(圍繞另一個點旋轉一個點 (2D))
Image Processing: Algorithm Improvement for #39;Coca-Cola Can#39; Recognition(圖像處理:Coca-Cola Can 識別的算法改進)
How do I construct an ISO 8601 datetime in C++?(如何在 C++ 中構建 ISO 8601 日期時間?)
Sort list using STL sort function(使用 STL 排序功能對列表進行排序)
主站蜘蛛池模板: 液压压力机,液压折弯机,液压剪板机,模锻液压机-鲁南新力机床有限公司 | 体坛网_体坛+_体坛周报新闻客户端 | 智能垃圾箱|垃圾房|垃圾分类亭|垃圾分类箱专业生产厂家定做-宿迁市传宇环保设备有限公司 | 无机纤维喷涂棉-喷涂棉施工工程-山东华泉建筑工程有限公司▲ | elisa试剂盒-PCR试剂盒「上海谷研实业有限公司」 | 27PR跨境电商导航 | 专注外贸跨境电商 | 河南生物显微镜,全自动冰冻切片机-河南荣程联合科技有限公司 | 湖州织里童装_女童男童中大童装_款式多尺码全_织里儿童网【官网】-嘉兴嘉乐网络科技有限公司 | 铝合金重力铸造_铝合金翻砂铸造_铝铸件厂家-东莞市铝得旺五金制品有限公司 | 绿叶|绿叶投资|健康产业_绿叶投资集团有限公司 | 深圳货架厂家_金丽声精品货架_广东金丽声展示设备有限公司官网 | HDPE储罐_厂家-山东九州阿丽贝防腐设备 | 施工电梯_齿条货梯_烟囱电梯_物料提升机-河南大诚机械制造有限公司 | 台式核磁共振仪,玻璃软化点测定仪,旋转高温粘度计,测温锥和测温块-上海麟文仪器 | 六自由度平台_六自由度运动平台_三自由度摇摆台—南京全控科技 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | Akribis直线电机_直线模组_力矩电机_直线电机平台|雅科贝思Akribis-杭州摩森机电科技有限公司 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 实战IT培训机构_IT培训班选大学生IT技术培训中心_中公优就业 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 防水套管厂家-柔性防水套管-不锈钢|刚性防水套管-天翔管道 | 动力配电箱-不锈钢配电箱-高压开关柜-重庆宇轩机电设备有限公司 聚天冬氨酸,亚氨基二琥珀酸四钠,PASP,IDS - 远联化工 | 纳米二氧化硅,白炭黑,阴离子乳化剂-臻丽拾科技 | 一体式钢筋扫描仪-楼板测厚仪-裂缝检测仪-泰仕特(北京) | 煤矿人员精确定位系统_矿用无线通信系统_煤矿广播系统 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-北京罗伦过滤技术集团有限公司 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 电子元器件呆滞料_元器件临期库存清仓尾料_尾料优选现货采购处理交易商城 | 北京征地律师,征地拆迁律师,专业拆迁律师,北京拆迁律师,征地纠纷律师,征地诉讼律师,征地拆迁补偿,拆迁律师 - 北京凯诺律师事务所 | 福州时代广告制作装饰有限公司-福州广告公司广告牌制作,福州展厅文化墙广告设计, | 粉末冶金-粉末冶金齿轮-粉末冶金零件厂家-东莞市正朗精密金属零件有限公司 | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | 数控专用机床,专用机床,自动线,组合机床,动力头,自动化加工生产线,江苏海鑫机床有限公司 | led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 东莞韩创-专业绝缘骨架|马达塑胶零件|塑胶电机配件|塑封电机骨架厂家 | 自动化生产线-自动化装配线-直流电机自动化生产线-东莞市慧百自动化有限公司 | 电动葫芦|防爆钢丝绳电动葫芦|手拉葫芦-保定大力起重葫芦有限公司 | 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 客服外包专业服务商_客服外包中心_网萌科技 | 冷油器-冷油器换管改造-连云港灵动列管式冷油器生产厂家 |