【发布时间】:2010-10-15 08:55:03
【问题描述】:
我听说 i++ 不是线程安全语句,因为在汇编中它简化为将原始值存储为某个地方的临时值,递增它,然后替换它,这可能会被上下文切换中断。
但是,我想知道 ++i。据我所知,这将简化为一条汇编指令,例如“add r1, r1, 1”,并且由于它只有一条指令,因此不会被上下文切换中断。
谁能澄清一下?我假设正在使用 x86 平台。
【问题讨论】:
-
只是一个问题。两个(或更多)线程访问这样的变量需要什么样的场景?我在这里诚实地问,而不是批评。就在这个时候,我的脑袋想不出来。
-
C++ 类中维护对象计数的类变量?
-
关于我今天刚刚观看的这件事的好视频,因为另一个人告诉我:youtube.com/watch?v=mrvAqvtWYb4
-
重新标记为 C/C++ ;这里不考虑 Java,C# 类似,但缺少这种严格定义的内存语义。
-
@Oscar Reyes 假设您有两个线程都使用 i 变量。如果一个线程只在某一点增加线程,另一个只在另一点减少线程,你就不得不担心线程安全。
标签: c++ c multithreading