news 2026/4/12 21:29: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/4/12 6:55:50

游戏NPC智能互动:环境感知响应玩家行为

游戏NPC智能互动:环境感知响应玩家行为 引言:从静态对话到动态感知的进化 在传统游戏中,NPC(非玩家角色)的行为逻辑大多基于预设脚本和固定触发条件。无论玩家是悄悄靠近还是持械闯入,NPC的反应往往千篇一律…

作者头像 李华
网站建设 2026/4/10 13:28:23

电力设施巡检:识别输电线路老化或异物悬挂问题

电力设施巡检:识别输电线路老化或异物悬挂问题 引言:智能视觉在电力运维中的关键价值 随着电网规模的持续扩大,传统人工巡检方式已难以满足高效、精准、安全的运维需求。尤其是在偏远山区或复杂地形中,输电线路长期暴露于自然环境…

作者头像 李华
网站建设 2026/4/9 23:20:12

macOS窗口管理终极指南:一键提升工作效率的5种方法

macOS窗口管理终极指南:一键提升工作效率的5种方法 【免费下载链接】alt-tab-macos Windows alt-tab on macOS 项目地址: https://gitcode.com/gh_mirrors/al/alt-tab-macos 想要在macOS上获得Windows那样高效的窗口切换体验吗?这款免费开源的窗…

作者头像 李华
网站建设 2026/4/11 5:34:13

工业质检场景适配性分析:万物识别模型能否胜任?

工业质检场景适配性分析:万物识别模型能否胜任? 引言:通用视觉模型的兴起与工业质检的严苛需求 随着深度学习在计算机视觉领域的持续突破,通用图像识别模型正逐步从学术研究走向产业应用。阿里近期开源的「万物识别-中文-通用领域…

作者头像 李华
网站建设 2026/4/12 20:00:54

自动化识别流水线构建:集成阿里万物识别模型的工程实践

自动化识别流水线构建:集成阿里万物识别模型的工程实践 引言:从通用图像识别到自动化流水线的演进 在智能制造、内容审核、零售分析等场景中,图像识别技术正逐步成为核心基础设施。传统方案往往依赖定制化模型训练,成本高、周期长…

作者头像 李华