1

在线程中使用 __asm{} 代码是否危险?

例如,我有 2 个线程在一个内核上运行,而 main() 在另一个内核上运行。如果一个线程在 eax 上写入并读取 ebx 而另一个线程在 eax 上写入并在 ebx 上写入会发生什么?如果我从 main() 读取这些寄存器会发生什么?

4

2 回答 2

7

每个线程都有自己维护的一组寄存器。要么是因为它在不同的内核上运行,要么是操作系统在上下文切换时换出了寄存器。

于 2012-07-28T16:56:51.790 回答
2

只有您的“全局”(非堆栈)变量在线程之间共享。

已经在 SO 上讨论过了

于 2012-07-28T16:58:59.560 回答