【发布时间】:2012-07-28 16:54:14
【问题描述】:
在线程中使用 __asm{} 代码是否危险?
例如,我有 2 个线程在一个内核上运行,而 main() 在另一个内核上运行。如果一个线程在 eax 上写入并读取 ebx,而另一个线程在 eax 上写入并在 ebx 上写入会发生什么?如果我从 main() 读取这些寄存器会发生什么?
【问题讨论】:
-
你明白你的cpu运行的所有代码都是机器码,对吧?无论您使用
asm还是高级解释语言都不会改变任何事情。 -
你是对的。我以为编译器会更改寄存器的名称,但我不知道。
标签: c++ multithreading thread-safety inline-assembly