内容总结
1.并行、并发、多线程三者概念
2.实现代码并行的类-Parallel
1)三种常用方法:invoke、for、foreach的使用
2)捕捉异常的方法
概念
参考资料:https://blog.csdn.net/qq_33290787/article/details/51790605
1.并行
指两个或两个以上事件(或线程)在同一时刻发生,不同事件(线程)同一时刻,在不同CPU资源上(多核),同时执行。如图所示
2.并发
一个CPU在若干道程序(或线程)之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。如下图所示
3.多线程
在一个进程下有多个线程。各个线程执行自己的任务,这些任务可以”同时进行“。
1)我们通过多线程实现并发或并行;
2)如何理解进程与线程
例:同时开启word、excle、Visio,此为三个进程同时启动即多进程;在word中打印某一文件,同时修改该文件,此为两个线程同时进行即多线程
Parallel类
1.Stopwatch类作用
1)使用前需先引入using System.Diagnostics;
2)当我们在调试C#程序的时候,往往需要记录下代码的运行时间,来测试代码的运行效率,Stopwatch类就是统计时间的方法之一。
2.Parallel.Invoke 最简洁的将串行代码并行化的方法
参考资料: https://www.cnblogs.com/yunfeifei/p/3993401.html
代码简述
1、创建ParallelDemo类,类中包括三个方法:Run1()、Run2()、ParallelInvok()
2、Run1()、Run2():延迟2s、3s
3、ParallelInvok():用于测试,对比在普通情况下与Parallel.Invoke()下代码运行时间
using System;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApp_parallel1
{
class Program
{
static void Main(string[] args)
{
ParallelDemo parallelDemo = new ParallelDemo();
parallelDemo.ParallelInvok();
}
}
/// <summary>
/// Parallel.Invoke
/// </summary>
public class ParallelDemo
{
Stopwatch stopwatch = new Stopwatch();
public void Run1()
{
Thread.Sleep(2000);
Console.WriteLine("Task 1 is cost 2 sec");
}
publi