不同CPU核心上的上下文切换和线程执行

Val*_*zub 1 .net c# multithreading context-switch memory-barriers

从我关于SO的另一个问题我发现它可能遵循简单的方法

  void B()
  {
    if (_complete)
    {
      Console.WriteLine (_answer);
    }
  }
Run Code Online (Sandbox Code Playgroud)

如果在if和console writeline之间发生上下文切换,可能会在不同的CPU上执行..这对我来说是新闻,所以我想知道现在什么时候单线程代码可以转换为另一个CPU以及为什么它可能在上面这么简单的情况下有意义?

Ree*_*sey 6

什么时候单线程代码可以切换到另一个CPU

这可以随时发生.话虽如此,出于实际目的,你应该真的不关心.这是任何多任务操作系统的功能.

为什么在如上所述的简单情况下可能有意义?

它根本无法帮助您编写代码.它确实允许操作系统更好地平衡和处理系统上运行的其他进程.