为什么原子操作被认为是线程安全的?

2024-03-26

原子操作如何成为线程安全的?我读过有关该主题的内容维基百科关于线程安全的文章 http://en.wikipedia.org/wiki/Thread_safety。但文章并没有真正解释幕后的过程。换句话说,为什么线程A执行的“原子”操作不能被线程B中断呢?


原子操作要么完成,要么根本不完成。其他线程将无法看到“正在进行中”的操作——它永远不会以部分完成的状态被查看。这就是“原子”一词在此上下文中的含义。

实现这一目标的幕后魔力因实施而异。出于并发设计的目的,您可以依赖的就是“全有或全无”的执行保证。

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

为什么原子操作被认为是线程安全的? 的相关文章

随机推荐

  • 如何在laravel中使用shift-jis编码导出csv文件?

    我在用laravel excel https laravel excel com 导出 csv 文件 要导出 代码如下 return Excel download new Export results header test csv Exp
  • 为什么我的关系表会抛出 OutOfMemoryError?

    我正在使用 iReport 构建 jaspersoft 报告 并使用 Fishbowl 作为我的 DBMS 我构建了我的表 在 iReport 中显示我的表是相关的 但由于某种原因它会抛出错误并且不会运行 应该很简单 我正在输入邮政编码 日
  • 使用 PathCollections 的图例

    我正在使用集合绘制圆圈组 但无法生成三个类别的图例 我想 第 1 类 红色圆圈 类别 2 蓝色圆圈 第 3 类 黄色圆圈 import matplotlib import matplotlib pyplot as plt from matp
  • 在我的应用程序中包含 jpeg 插件

    我制作了一个加载 jpeg 文件的 Qt GUI 应用程序 在我安装了 QtSDK 4 7 3 的开发系统 Win7 上 它可以工作 当我将应用程序和一些必需的 dll 如 QtGui4 dll 等 移动到另一个未安装 QtSDK 的系统时
  • 将多个数据帧合并为一个扩展帧

    我有一个数据帧列表 其中每个帧都包含单个系统的相同类型的测量值 例如 system1 file cumSize cumloadTime query1 1 data data1 dat 100000 158 1000 0 4333333 2
  • 动态加载和动态链接的区别?

    例程在被调用之前不会被加载 所有例程都以可重定位加载格式保存在磁盘上 主程序被加载到内存中并被执行 这称为动态链接 为什么这称为动态链接 不应该是动态加载吗 因为在动态加载中调用例程之前不会加载 而在动态链接中 链接会推迟到执行时 此答案假
  • 使用 python 登录 quora

    我尝试使用 python 登录 quora 但它给了我以下错误 urllib2 HTTPError HTTP Error 500 Internal Server Error 到目前为止 这是我的代码 我也在代理后面工作 import url
  • 如何在 FSharp 中对数组的 XML 序列化

    这就是我要找的
  • Git分支没有跟踪信息

    git pull 之后我得到这个输出 There is no tracking information for the current branch Please specify which branch you want to merge
  • 如何在 NSIS 中使用 try catch

    您好 我在安装时在 nsis 安装程序中的几台机器上遇到了奇怪的错误 使用 fontreg nsh 安装字体时给出 无效的 win32 文件句柄 我试过谷歌但没有得到这个问题的答案 现在我正在考虑抑制此消息 那么有什么方法可以抑制此消息 或
  • 数据绑定 Kendo UI 网格后保留展开的行

    这是我第一次使用 Kendo UI 我有一个带有子节点的 Kendo UI 网格 我想在数据绑定后保留扩展的行 现在 在子项中添加一行后 它会折叠起来 我尝试过来自的建议here https stackoverflow com questi
  • 是否可以为 geom_point 和 geom_segment 添加图例?

    我想知道是否可以添加图例geom point and geom segment 从 geom point 我自动获取图例 但是我不知道如何添加图例geom segment 我努力了scale linetype manual但显然它不起作用
  • MVC 是编写 ASP.NET 应用程序的最佳方式吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 更新 我知道没有一种最好的方法可以做所有事情 抱歉没有马上说出来 在数据访问教程的背景下 如果您必须执行他在该教程中所做的项目 如果您必须选择其
  • 如何使用MySQL全文搜索短语而不是使用LIKE

    如何使用 mysql 全文搜索来搜索短语而不是 like SELECT description FROM t WHERE info LIKE Search phrase one OR info LIKE Phrase second OR i
  • 传递 lambda 或异步 lambda 来执行?有权衡吗? [复制]

    这个问题在这里已经有答案了 我试图理解将 lambda 传递到执行 lambda 的异步方法的两种方法的后果 下面的示例总结了这两种方法 在第一种方法中 lambda 本身是异步的 而在第二种方法中则不是 虽然这是一个人为的示例 但我试图确
  • 实体框架代码优先:如何确定运行时用于导航属性的外键属性?

    我有一个实体框架 Code First DbContext 配置了以下实体 在此示例中 Bar 类是 Foo 类的子类 public class Foo public Guid Id get set public virtual IColl
  • 将对象转换或转换为字符串

    如何将任何对象类型转换为字符串 let single result results i var result result single result valueForKey Level 现在我收到错误 无法将任何对象类型的值分配给字符串类
  • 在 OpenCV 中,cv2.filter2D() 需要什么数据类型?

    我正在自学边缘检测器 并且正在尝试使用 OpenCVfilter2D实现我自己的梯度计算器 类似于cv2 Sobel 在 OpenCV 的 Python 接口中 cv2 filter2D 允许用户使用自定义过滤器对图像进行卷积 在 Open
  • TensorFlowOpLayer 弄乱了 TensorBoard 图表

    这个问题是关于 TensorFlow 和 TensorBoard 版本 2 2rc3 的 但我在 2 1 版本中遇到了同样的问题 这是问题的延续 由于 Python 操作导致 TensorBoard 图混乱 https stackoverf
  • 为什么原子操作被认为是线程安全的?

    原子操作如何成为线程安全的 我读过有关该主题的内容维基百科关于线程安全的文章 http en wikipedia org wiki Thread safety 但文章并没有真正解释幕后的过程 换句话说 为什么线程A执行的 原子 操作不能被线