代码之家  ›  专栏  ›  技术社区  ›  huseyin tugrul buyukisik

程序集代码试图访问同一寄存器,在不同的线程中会损坏任何东西吗?

  •  1
  • huseyin tugrul buyukisik  · 技术社区  · 12 年前

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

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

    2 回复  |  直到 12 年前
        1
  •  7
  •   Vaughn Cato    12 年前

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

        2
  •  2
  •   Community datashaman    7 年前

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

    这已经 discussed already on SO