执行试图访问同一寄存器的汇编代码,在不同线程中损坏任何东西



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

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

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

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

SO上已经讨论过这一点。

相关内容

最新更新