三句话理解C#并行、并发、顺序执行的区别

并行、并发、顺序在程序开发中经常运用到,我们可以根据不同的情况来使用,比如处理比较大的任务计算就用并行。下面用三句话来描述三者之间的区别:

 1、你正在吃饭,这时候你女友想让你唱歌,你不同意,直到吃饭结束才给她唱歌,说明是顺序执行,既不是并行也不是并发。.

2、你正在吃饭,这时候你女友想让你唱歌,你停下吃完饭给你女友唱歌,唱完歌接着吃饭,这说明是并发。不能同时做两件事。

3、你正在吃饭,这时候你女友想让你唱歌,你边吃饭边唱歌,这说明是并行。

并发是你有多个任务不一定同时执行,可以分开时间分别执行。
而并行是多个任务同时执行,具有执行多任务的能力。
顺序就像排队一样,一个一个执行。是单核时代的计算机的特性。
并发和并行都可以是多个线程,看线程是否是多个CUP执行,如果是一个CPU执行的话就是并发,多个CPU执行的是并行。

C#顺序执行:

for (int i = 1; i <= 10000; i++) {                 bool b = fun(i);                   Console.WriteLine($"{i}:{b}");//一个一个执行}
采用并行编程方法:​​​​​​​
Parallel.For(1, 10000, x=>  {      bool b = fun(x);                     Console.WriteLine($"{i}:{b}")//多个同时执行 });
并发和并行不容易区分,具体根据CPU的执行情况来看。

对于并发和并行还有什么不清楚或者对文章有疑问,欢迎留言讨论。