c++ - 汇编代码是否试图到达相同的寄存器,在不同的线程中损坏任何东西?

标签 c++ multithreading thread-safety inline-assembly

在线程中使用 __asm{} 代码有危险吗?

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

最佳答案

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

关于c++ - 汇编代码是否试图到达相同的寄存器,在不同的线程中损坏任何东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11702919/

相关文章:

c++ - QT - 不同用途的最佳绘画 "canvas"

java - 多线程比单线程快吗?

java - 在不同步的情况下共享数据 - 这段代码线程安全吗?

java - 如何使循环队列完全线程安全

c++ - 算术运算符返回类型

C++。错误 LNK1104。第一次打不开库文件 解决办法建了

c++ - 找不到架构 i386 的符号 - 但适用于 iOS 设备

java - 简单 AsyncTask - 返回值 null

c# - Monitor.Wait 是否确保重新读取字段?

c# - 为什么这个赋值不是线程安全的?