Multithreading ';并发性';vs';并行性';——';螺纹';vs';过程';
我知道并发性(CPU进程交换)和并行性(多核上实时并行运行的进程)之间的区别。我想知道的是线程和进程在所有这一切中扮演什么角色。我知道每个操作系统都是不同的,CPU调度也因操作系统和虚拟机而异。通常,线程的开销要小得多,与进程相比,线程的CPU交换通常更快。但是当我读到多进程计算时,每个人似乎都同意这是在多个CPU上并行计算的唯一选择 这是否意味着线程不能在多个CPU核上真正并行运行?或者,如果需要在多个物理CPU芯片(如群集网络超级计算机)上运行计算,那么多进程计算是唯一可行的选择 我希望得到澄清 每个人似乎都同意,这是在多个CPU上并行计算的唯一选择 我从来没听说过这个。无论如何,这不是真的 这是否意味着线程不能在多个CPU核上真正并行运行 线程是大多数操作系统的调度单元。进程不是调度单元。最重要的是,它们作为调度启发式的输入发挥作用。线程在CPU上运行(并行),而不是进程 或者,如果需要在多个物理CPU芯片(如群集网络超级计算机)上运行计算,这是否意味着多进程计算是唯一可行的选择 否。进程不会增强操作系统的调度功能Multithreading ';并发性';vs';并行性';——';螺纹';vs';过程';,multithreading,concurrency,parallel-processing,Multithreading,Concurrency,Parallel Processing,我知道并发性(CPU进程交换)和并行性(多核上实时并行运行的进程)之间的区别。我想知道的是线程和进程在所有这一切中扮演什么角色。我知道每个操作系统都是不同的,CPU调度也因操作系统和虚拟机而异。通常,线程的开销要小得多,与进程相比,线程的CPU交换通常更快。但是当我读到多进程计算时,每个人似乎都同意这是在多个CPU上并行计算的唯一选择 这是否意味着线程不能在多个CPU核上真正并行运行?或者,如果需要在多个物理CPU芯片(如群集网络超级计算机)上运行计算,那么多进程计算是唯一可行的选择 我希望得到
这个问题问得不太准确。我希望我能澄清要点。首先,澄清您使用的术语:
- 进程是由操作系统管理的实体,通常是程序的执行李>
- 线程是进程中按顺序执行指令的实体
最后,一个简单(尽管非传统)的例子是XMOS处理器体系结构,其中线程和进程的含义略有不同。这允许将多个处理器芯片连接在一起,并允许顺序执行的多个线程在它们之间执行和通信,无需操作系统。线程和进程之间的主要区别在于同一进程内的线程共享同一(虚拟)内存。在具有多个CPU芯片的系统上,芯片可能比其他区域(与其他CPU的连接效率更高)更有效地访问系统总内存的某个区域。在这种情况下,在CPU上分割一个进程的多个线程将是低效的(或不可能的)。在这个问题中,许多假设/观点,我会考虑假或不共享。USR:如果你能编辑你发现的问题的部分,我将非常高兴: