如果最多有1个对共享变量的引用,则该语句被视为原子语句。
假设变量x是共享变量。
陈述1:x = x + 1;
陈述1有两个引用,但它们引用的是同一变量。这仍然算作“两个参考”吗?
陈述2:x ++;
语句2与语句1相同,但只有一个引用。
那么这些陈述是否被认为是原子的?
提前感谢
您的问题的前提:
如果最多有1个对共享变量的引用,则该语句被视为原子语句。
并非源自C语言的语义。如果您想使用此定义将“原子”定义为与C语言中通常含义完全不同的事物,那么按照“引用”的简单英语含义,我将第一个陈述解释为“非原子”,其次是“原子”。但这与atomic的通常含义无关,就异步中断(信号/中断处理程序)或与其他线程/进程/内核的内存同步而言,就原子性而言,它们都不是atomic。