Parallel并行运算实例
2024-10-18 22:34:26
并行运算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来区分,可以有效的提高速度。
最新文章
- 【JavaScript】【CSS】前端规则摘抄
- 为 Linux 应用程序编写 DLL[转]
- Oracle学习指南
- C-crash的方法
- iOS学习资料链接
- HDU2897邂逅明下(博弈)
- flex脚本的申明
- GE_OG_CALC_COLUMN_EMPTY
- 在spring MVC的controller中获取ServletConfig
- Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
- C语言库函数大全及应用实例二
- 如何缩放SpriteBuilder中的scene
- channel.go
- VSTO 获取sheet单元格行列数
- Win10启动tomcat控制台乱码解决方案
- ThinkPHP中RBAC权限带菜单栏显示和详细权限操作
- Linux内核中的netlink是什么?
- Linux MySQL 安装、远程访问和密码重置
- 基础的正则表达式与re模块(2)
- 回车符与换行符问题——C语言