时间:2019-03-14 标签:c++

2024-04-13

我正在编写一个 C++ 应用程序。

我有一个类变量,多个线程正在写入该变量。

在 C++ 中,任何可以在编译器“意识到”正在更改的情况下进行修改的内容都需要标记为易失性,对吧?因此,如果我的代码是多线程的,并且一个线程可能写入 var,而另一个线程从中读取,我是否需要标记 var volaltile?

[我没有竞争条件,因为我依赖于对整数的写入是原子的]

Thanks!


C++ 还没有任何多线程的规定。在实践中,易失性并没有按照你的意思做(它是为内存寻址硬件而设计的,虽然这两个问题很相似,但它们的不同之处足以使易失性不能做正确的事情——请注意,易失性已被用于其他在 mt 上下文中使用的语言)。

因此,如果您想在一个线程中写入对象并在另一个线程中读取它,则必须在需要时使用实现所需的同步功能。据我所知,挥发性在其中不起任何作用。

仅供参考,下一个标准将考虑 MT,而 volatility 不会在其中发挥作用。所以这不会改变。您将只拥有需要同步的标准定义条件以及实现这些条件的标准定义方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

时间:2019-03-14 标签:c++ 的相关文章

  • std::list::clear 是否会使 std::list::end 迭代器无效?

    检查这个代码 include stdafx h include
  • C# 和月历,选择多个日期

    我正在制作一个程序 可以帮助人们用 C 为某个部门 预订 订单 他们需要能够选择不同月份的多个日期 我更愿意拥有它 这样他们就可以单击一个日期 然后按住 Shift 键单击另一个日期以选择这两个日期之间的所有日期 并控制单击以进行单选 取消
  • C# Outlook 从收件人获取 CompanyName 属性

    我目前正在使用 C 编写 Outlook 2010 AddIn 我想要的是从我从 AppointmentItem 中提取的 Recipient 对象中获取 CompanyName 属性 因此 有了 AppointmentItem 的收件人
  • 如何调整 Windows 窗体以适应任何屏幕分辨率?

    我知道这是重复的问题 但我检查了所有其他相关问题 他们的答案没有帮助 结果仍然与屏幕截图 2 中所示相同 我是 C Windows 窗体新手 如截图1所示 我有Form1有一些控件 每组控件都放在一个面板中 我在 PC1 中设计了应用程序
  • DataGridView 列中的数字文本框

    我有一个DataGridView 我想要它的第一列或任何所需的列 其中有textboxes在其中 成为NUMERIC ONLY 我目前正在使用这段代码 private void dataGridViewItems EditingContro
  • 为什么 C# 中同一类型的隐式和显式运算符不能共存? [复制]

    这个问题在这里已经有答案了 为什么同一类中两个相同类型的运算符 显式和隐式 不能共存 假设我有以下内容 public class Fahrenheit public float Degrees get set public Fahrenhe
  • 类中是否可以有虚拟类声明?

    我正在为个人项目中框架的各个组件设置一个接口 我突然想到了一些我认为可能对接口有用的东西 我的问题是这是否可能 class a public virtual class test 0 class b public a public clas
  • 如何调试在发布版本中优化的变量

    我用的是VS2010 我的调试版本工作正常 但我的发布版本不断崩溃 因此 在发布版本模式下 我右键单击该项目 选择 调试 然后选择 启动新实例 此时我看到我声明的一个数组 int ma 4 1 2 8 4 永远不会被初始化 关于可能发生的事
  • 虚拟并行端口模拟器

    在我的计算机网络课程中 我们应该通过使用本机寄存器 例如使用 outportb 等命令 来学习并行端口编程 我没有并行端口 因为我住在 2011 年 但想练习这些程序 我使用 dosbox 安装了旧的 Turboc 3 IDE 有没有一个程
  • Nhibernate:连接表并从其他表获取单列

    我有以下表格 create table Users Id uniqueidentifier primary key InfoId uniqueidentifier not null unique Password nvarchar 255
  • 关闭整数的最右边设置位

    我只需要关闭最右边的设置位即可 我的方法是找到最右边位的位置 然后离开该位 我编写这段代码是为了这样做 int POS int n int p 0 while n if n 2 0 p else break n n 2 return p i
  • 编写具有多种类型的泛型扩展方法时的类型推断问题

    我正在为 IEnumerable 编写一个通用扩展方法 用于将对象列表映射到另一个映射对象列表 这就是我希望该方法的工作方式 IList
  • C 与 C++ 中的 JNI 调用不同?

    所以我有以下使用 Java 本机接口的 C 代码 但是我想将其转换为 C 但不知道如何转换 include
  • 选择 asp.net CheckBoxList 中的所有项目

    ASP NET 和 C 我想要一个带有 全选 项目的复选框列表 当这个特定项目是 已选择 所有其他都将被选择 也 当选择被删除时 这个项目 也将来自所有人 其他物品 选中 取消选中 任何其他项目只会有一个 对特定项目的影响 无论选择状态如何
  • C++ 模板可以提供 N 个给定类的公共父类吗?

    我正在寻找一个 C 模板 它可以找到一组给定类的共同父级 例如 class Animal class Mammal public Animal class Fish public Animal class Cat public Mammal
  • 值和类型的简洁双向静态 1:1 映射

    我将从我想象如何使用我想要创建的代码开始 它不必完全像这样 但它是我在标题中所说的 简洁 的一个很好的例子 就我而言 它是将类型映射到相关的枚举值 struct bar foo
  • 在 C 中使用 #define 没有任何价值

    If a define没有任何价值地使用 例如 define COMMAND SPI 默认值是0吗 不 它的评估结果为零 从字面上看 该符号被替换为空 然而 一旦你有了 define FOO 预处理器条件 ifdef FOO现在将是真的 另
  • 如何知道 HTTP 请求标头值是否存在

    我确信这很简单 但是却让我感到厌烦 我在 Web 应用程序中使用了一个组件 它在 Web 请求期间通过添加标头 XYZComponent true 来标识自身 我遇到的问题是 如何在视图中检查此组件 以下内容不起作用 if Request
  • IDisposable 的显式实现

    虽然有很多关于IDisposable在 SO 上找到 我还没有找到答案 我通常遵循这样的做法 当我的一个班级拥有一个IDisposable对象然后它也实现IDisposable并打电话Dispose在拥有的对象上 然而最近我遇到了一个类 它
  • 如何在c中断言两个类型相等?

    在 C 中如何断言两种类型相等 在 C 中 我会使用 std is same 但搜索 StackOverflow 和其他地方似乎只能给出 C 和 C 的结果 在C中没有办法做到这一点吗 请注意 这不是询问变量是否具有某种类型 而是询问两个类

随机推荐

  • 动态使用存储中的额外参数

    我有一个表格 在表格中 我使用的是comboBox with a store xtype combobox id SubContractor name SubContractor fieldLabel Sub Contractors sel
  • 用值初始化数组(指针)[重复]

    这个问题在这里已经有答案了 所以 在 C 语言中 这完全有效 int myArray 1 2 3 为什么以下内容在访问元素时会出现运行时错误 int myArray2 1 2 3 myArray2 0 when myArray2 0 基本上
  • Firefox 中是否有与 Google Chrome 等效的allow-insecure-localhost 标志?

    我想使用不安全 自签名 证书连接 wss SSL ed websocket 但这会引发错误 此错误是由默认的 Firefox 设置引起的 该设置似乎不允许连接到自签名 ssl 以及 chrome 在 Chrome 中 这种行为可以通过以下方
  • 从代码中使用 XML 配置 log4net 或 NLog

    最近我一直在从事一个项目 除其他外 我们希望提供一个集中式配置系统 我们使用 WCF Silverlight C 等来创建分布式服务和客户端系统 我们想要配置的事情之一是日志记录 显然 我们可以通过 app config 或单独的日志配置文
  • 如何让应用程序支持三星的弹出视图? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我的应用程序的用户抱怨他无法在弹出窗口中打开应用程序 像这样 http www samsung com
  • 如何增加 Visual Studio 项目的内部版本号?

    为什么在 Visual Studio 中构建项目不会增加内部版本号 我在 AssemblyInfo cs 中有这个 assembly AssemblyVersion 1 5 这在 frmAbout 的构造函数中 Version versio
  • DataTable:如何隐藏分页并仅在需要时显示?

    我有 2 个使用 DataTable jQuery 插件的表 我想知道是否有办法隐藏表格右下角的分页 Note 仅在需要时才显示分页 当查询结果小于10条时隐藏分页 Use 绘制回调 https datatables net referen
  • 在facet_wrap中自动包装长窗格标题[重复]

    这个问题在这里已经有答案了 我想使用facet wrap 总结几列 我想给几个方面窗格起长标题 例如 set seed 123 df lt data frame a sample 0 1 20 replace T b sample 1 4
  • Net Core中DbContext需要MemoryCache或者Redis吗?

    我们在 SQL Server 数据库中有多个查找表 表格用于应用程序下拉菜单 地址类型 Home Business 产品类别 Books Food 电子产品 团队希望应用而不是不断读取数据库查找表MemoryCache or Redis C
  • 如何在 Laravel 中设置动态路由前缀?

    我需要创建一个具有多个区域设置的应用程序 每个路由都以区域设置为前缀 例如 xxx com en home xxx com fr home 问题是 我需要将区域设置字符串动态绑定到路由前缀 由于用户可以更改区域设置 因此区域设置字符串存储在
  • 在 Swift 中改变函数参数

    在 Swift 中 是否有可能在该函数的作用域内改变作为参数传递给函数的变量所指向的值 func exampleFunction value String index Int gt Bool value Changed Value Erro
  • Angular 4使用反应形式在数组内创建动态formArray

    在这里 我们在数组内动态创建数组 下面是预期结果的示例结构 optionsRadios null Package Title null HotelData Htitle HDescription hotelStar RoomData Hot
  • 通过 Excel VBA 发送带附件的电子邮件

    我想通过 Outlook 从 Excel 通过电子邮件发送报告 我正在使用我自己和同事的电子邮件地址对此进行测试 我收到 无法送达 的消息Error 该消息表示无法联系到收件人 并建议稍后尝试发送电子邮件 Sub CreateEmail D
  • 将 std::string 传递给函数 f(**char)

    是否可以将 std string 的指针传递给需要 char 的函数 该函数需要一个 char 才能向其写入值 目前我正在做以下事情 char s1 f s1 std string s2 s1 难道就没有更短的路吗 很明显 s2 c str
  • org.springframework.security.authentication.AuthenticationCredentialsNotFoundException:在SecurityContext中找不到身份验证对象

    我在以下环境中有一个网络应用程序 春季3 2 2 春季安全3 2 0 JPA 2 0 JSF 2 1 9 我已将以下与 Spring 安全相关的库添加到类路径中 spring security core 3 2 0 M1 jar sprin
  • 如何找到只安装了facebook应用的好友? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在 Facebook 上使用一个应用程序 我想找出仅包含在 Facebook 上安装相同应用程序的朋友的列表 而不是整个朋友列表 我正在
  • 嵌套字典理解python

    我无法理解 Python 3 中的嵌套字典推导式 我从下面的示例中得到的结果输出了正确的结构 没有错误 但只包含内部键 值对之一 我还没有找到像这样的嵌套字典理解的例子 谷歌搜索 嵌套字典理解 python 显示遗留示例 非嵌套理解或使用不
  • 如何长按主页、后退或最近使用的应用程序按钮打开我的 Android 应用程序?

    我希望我的用户能够通过长按后退按钮 最近使用的应用程序按钮或主页按钮来启动我的应用程序 或者甚至长按音量增大 减小或电源按钮 这将允许用户在不触摸屏幕图标的情况下执行我的应用程序 顺便说一句 我提供了与 Google Now 类似的语音解决
  • 将值从一个 jsp 页面传递到另一个 jsp 页面

    我正在将值从数据库检索到 jsp 中的表 到列 我想将该值插入到数据库中的另一个表中 为此 我使用另一个 jsp 表将该值插入到数据库中 并在之前的 jsp 页面表单操作选项卡中调用该 jsp 页面 I use request getPar
  • 时间:2019-03-14 标签:c++

    我正在编写一个 C 应用程序 我有一个类变量 多个线程正在写入该变量 在 C 中 任何可以在编译器 意识到 正在更改的情况下进行修改的内容都需要标记为易失性 对吧 因此 如果我的代码是多线程的 并且一个线程可能写入 var 而另一个线程从中