并行运算Parallel,是.net 4.0版本里添加的新处理方式,主要充分利用CPU、任务并发的模式来达到提高运算能力。简单理解为每个CPU都在处理任务,而不会让它们空闲下来。
直接看实例:
namespace ConsoleParallel { class Program { static void Main(string[] args) { Stopwatch watch1 = Stopwatch.StartNew(); for (int i = 0; i < 4; i++) { RunMethod(i); } Console.WriteLine("非并行耗时:" + watch1.ElapsedMilliseconds); Stopwatch watch2 = Stopwatch.StartNew(); Parallel.For(0, 4, (i) => { RunMethod(i); }); Console.WriteLine("并行耗时:" + watch2.ElapsedMilliseconds); } private static void RunMethod(int i) { switch (i) { case 1: Test1(); break; case 2: Test2(); break; case 3: Test3(); break; case 4: Test4(); break; } } private static void Test1() { System.Threading.Thread.Sleep(10000); } private static void Test2() { System.Threading.Thread.Sleep(20000); } private static void Test3() { System.Threading.Thread.Sleep(4000); } private static void Test4() { System.Threading.Thread.Sleep(6000); } } }
运行效果如下:
通过以上结果:我们发现,Parallel并发在性能和效率上提高了不少。
Parallel.ForEach(lists, (obj) => {
Response.Write(obj+"<br/>");
});
应用:将大数据加载在内存中时,借助多个方法并行去处理,每个方法执行部分数据加载,然后借助swich来区分,可以有效的提高速度。