在线程中使用__asm{}代码是否危险?
例如,我有两个线程在单个内核上运行,main()在另一个内核上运行。如果一个线程在eax上写入并读取ebx,而另一个线程读取eax并在ebx上写入,会发生什么?如果我从main()读取这些寄存器,会发生什么?
每个线程都有自己维护的一组寄存器。要么是因为它在不同的内核上运行,要么是因为操作系统交换了上下文开关上的寄存器。
只有您的"全局"(非堆栈)变量在线程之间共享。
SO上已经讨论过这一点。