Parallel并行运算实例
并行运算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来区分,可以有效的提高速度。
浙公网安备 33010602011771号