语句x = x + 1和x ++是否被认为是原子的?

问题描述 投票:0回答:1

如果最多有1个对共享变量的引用,则该语句被视为原子语句。

假设变量x是共享变量。

陈述1:x = x + 1;

陈述1有两个引用,但它们引用的是同一变量。这仍然算作“两个参考”吗?

陈述2:x ++;

语句2与语句1相同,但只有一个引用。

那么这些陈述是否被认为是原子的?

提前感谢

c atomic
1个回答
0
投票

您的问题的前提:

如果最多有1个对共享变量的引用,则该语句被视为原子语句。

并非源自C语言的语义。如果您想使用此定义将“原子”定义为与C语言中通常含义完全不同的事物,那么按照“引用”的简单英语含义,我将第一个陈述解释为“非原子”,其次是“原子”。但这与atomic的通常含义无关,就异步中断(信号/中断处理程序)或与其他线程/进程/内核的内存同步而言,就原子性而言,它们都不是atomic。

© www.soinside.com 2019 - 2024. All rights reserved.