news 2026/3/24 5:21:05

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/3/24 10:49:22

终极指南:如何在5分钟内掌握phpenv多版本PHP管理

终极指南:如何在5分钟内掌握phpenv多版本PHP管理 【免费下载链接】phpenv Simple PHP version management 项目地址: https://gitcode.com/gh_mirrors/ph/phpenv 还在为不同项目需要不同PHP版本而烦恼吗?phpenv就是你的救星!这个强大的…

作者头像 李华
网站建设 2026/3/23 8:34:15

Arrow游戏叙事工具:3大实战场景揭秘可视化创作新范式

Arrow游戏叙事工具:3大实战场景揭秘可视化创作新范式 【免费下载链接】Arrow Game Narrative Design Tool 项目地址: https://gitcode.com/gh_mirrors/arrow/Arrow 你是否想过,当游戏剧情设计不再受限于繁琐的代码,创作体验会发生怎样…

作者头像 李华
网站建设 2026/3/18 3:08:48

ATLauncher终极指南:如何快速搭建Minecraft模组世界

ATLauncher终极指南:如何快速搭建Minecraft模组世界 【免费下载链接】ATLauncher ATLauncher is a Launcher for Minecraft which integrates multiple different ModPacks to allow you to download and install ModPacks easily and quickly. 项目地址: https:/…

作者头像 李华
网站建设 2026/3/15 14:13:45

解密XGBoost黑箱:让AI决策变得透明易懂

解密XGBoost黑箱:让AI决策变得透明易懂 【免费下载链接】xgboost dmlc/xgboost: 是一个高效的的机器学习算法库,基于 C 开发,提供用于提升分类、回归、排序等任务的性能。 项目地址: https://gitcode.com/gh_mirrors/xg/xgboost 想象一…

作者头像 李华
网站建设 2026/3/18 9:23:41

解决中文图像标签难题:阿里万物识别模型优势解析

解决中文图像标签难题:阿里万物识别模型优势解析核心价值:在多语言图像理解场景中,中文标签的生成长期面临语义粒度粗、领域覆盖窄、术语不准确等挑战。阿里巴巴开源的万物识别模型(Wanwu Recognition Model)通过专为中…

作者头像 李华
网站建设 2026/3/17 4:19:01

终极Node.js版本管理方案:nvm-desktop桌面应用完整指南

终极Node.js版本管理方案:nvm-desktop桌面应用完整指南 【免费下载链接】nvm-desktop 项目地址: https://gitcode.com/gh_mirrors/nv/nvm-desktop 还在为不同项目需要切换Node.js版本而烦恼吗?nvm-desktop桌面应用让版本管理变得前所未有的简单。…

作者头像 李华