news 2026/9/3 1:02:06

Atomics探究(一)--kill_dependency

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Atomics探究(一)--kill_dependency

前言:

kill_dependency没啥用,本篇可以一扫而过

1、标准描述

Thekill_dependencymacro serves to terminate a dependency chain.


2、定义

2.1、在gcc中的定义

#define kill_dependency(Y) \ __extension__ \ ({ \ __auto_type __kill_dependency_tmp = (Y); \ __kill_dependency_tmp; \ })

2.2、在clang中的定义

#define kill_dependency(y) (y)

3、汇编代码分析

3.1、与赋值操作(=)结果一致

gcc -S 编译如下代码获得汇编代码

_Atomic int a = ATOMIC_VAR_INIT(1), b; //如下两句代码汇编代码基本一致 b = kill_dependency(a); b = (a);

上述代码汇编表明,在对原子变量ab进行操作时,使用kill_dependency宏与直接赋值操作(=)所得到的结果是相同的。

3.2、与普通变量赋值进行比较

gcc -S 编译如下代码获得汇编代码

int aa = 1, bb; bb = aa;

通过查看汇编,对原子变量进行赋值操作(kill_dependency)时,在x86_64系统中使用了mfence指令;在arm64系统中使用了ldar/stlr指令。这些指令用于内存屏障及内存操作的顺序性。

4、小结

4.1、kill_dependency宏在实际应用中基本未被广泛使用,在kernel、gcc、glibc、bionic以及systemd等项目中均未发现其使用痕迹。
4.2、在大多数情况下,直接使用赋值操作(=)就能够满足需求,无需额外使用kill_dependency宏。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/27 11:13:55

机器人视觉大脑:为服务机器人接入阿里万物识别能力

机器人视觉大脑:为服务机器人接入阿里万物识别能力 在智能服务机器人快速发展的今天,赋予机器人“看懂世界”的能力已成为提升其交互性与自主性的关键。传统的图像识别技术往往局限于特定类别或英文语义体系,难以满足中文场景下复杂多样的现…

作者头像 李华
网站建设 2026/9/2 23:02:02

QRemeshify完整安装指南:3步搞定Blender智能重拓扑插件

QRemeshify完整安装指南:3步搞定Blender智能重拓扑插件 【免费下载链接】QRemeshify A Blender extension for an easy-to-use remesher that outputs good-quality quad topology 项目地址: https://gitcode.com/gh_mirrors/qr/QRemeshify QRemeshify是一款…

作者头像 李华
网站建设 2026/8/31 3:33:53

Camunda Modeler 实战进阶:从建模菜鸟到流程设计大师的蜕变之路

Camunda Modeler 实战进阶:从建模菜鸟到流程设计大师的蜕变之路 【免费下载链接】camunda-modeler An integrated modeling solution for BPMN, DMN and Forms based on bpmn.io. 项目地址: https://gitcode.com/gh_mirrors/ca/camunda-modeler 还在为复杂的…

作者头像 李华
网站建设 2026/9/2 23:01:09

UE5高斯泼溅技术终极指南:如何解决实时渲染中的核心难题?

UE5高斯泼溅技术终极指南:如何解决实时渲染中的核心难题? 【免费下载链接】XV3DGS-UEPlugin 项目地址: https://gitcode.com/gh_mirrors/xv/XV3DGS-UEPlugin 作为Unreal Engine 5开发者,你是否在探索3D高斯泼溅技术时遇到了渲染效率低…

作者头像 李华
网站建设 2026/9/2 10:49:25

AltStore完整指南:如何在不越狱的情况下自由安装iOS应用

AltStore完整指南:如何在不越狱的情况下自由安装iOS应用 【免费下载链接】AltStore AltStore is an alternative app store for non-jailbroken iOS devices. 项目地址: https://gitcode.com/gh_mirrors/al/AltStore 厌倦了App Store的限制,想要在…

作者头像 李华