C# 无序执行是.Net核心应用程序中并发线程的常见问题吗?

C# 无序执行是.Net核心应用程序中并发线程的常见问题吗?,c#,multithreading,.net-core,C#,Multithreading,.net Core,我读过关于创建内存屏障作为防止无序执行的完整屏障的文章 关于这个主题,这里有一个很好的资源: 我现在试图理解在开发使用并发线程的程序时,这是一个多么常见的问题。据称JIT编译器可以对指令重新排序,处理器也可以。但并非所有处理器都能做到这一点。在这种情况下,JIT编译器这样做有多普遍?它是否仅基于处理器执行此操作 我还了解到,2018年的spectre漏洞与无序执行有关,这使得CPU支持这一点似乎非常普遍。spectre主要是分支预测,而不是无序,不是吗?但是:大多数现代计算机CPU都能做到这两

我读过关于创建内存屏障作为防止无序执行的完整屏障的文章

关于这个主题,这里有一个很好的资源:

我现在试图理解在开发使用并发线程的程序时,这是一个多么常见的问题。据称JIT编译器可以对指令重新排序,处理器也可以。但并非所有处理器都能做到这一点。在这种情况下,JIT编译器这样做有多普遍?它是否仅基于处理器执行此操作


我还了解到,2018年的spectre漏洞与无序执行有关,这使得CPU支持这一点似乎非常普遍。

spectre主要是分支预测,而不是无序,不是吗?但是:大多数现代计算机CPU都能做到这两个方面;在移动/物联网的低功耗CPU上不太常见,JIT编译器所做的是在这里讨论的重新排序类型之上至少有两层抽象,并且是另一种类型——作为优化的执行前重新排序,从处理器的角度看仍然是静态的。