并行运算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来区分,可以有效的提高速度。

最新文章

  1. 【JavaScript】【CSS】前端规则摘抄
  2. 为 Linux 应用程序编写 DLL[转]
  3. Oracle学习指南
  4. C-crash的方法
  5. iOS学习资料链接
  6. HDU2897邂逅明下(博弈)
  7. flex脚本的申明
  8. GE_OG_CALC_COLUMN_EMPTY
  9. 在spring MVC的controller中获取ServletConfig
  10. Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
  11. C语言库函数大全及应用实例二
  12. 如何缩放SpriteBuilder中的scene
  13. channel.go
  14. VSTO 获取sheet单元格行列数
  15. Win10启动tomcat控制台乱码解决方案
  16. ThinkPHP中RBAC权限带菜单栏显示和详细权限操作
  17. Linux内核中的netlink是什么?
  18. Linux MySQL 安装、远程访问和密码重置
  19. 基础的正则表达式与re模块(2)
  20. 回车符与换行符问题——C语言

热门文章

  1. python pip和easy_install使用方式(转载)
  2. html5上传文件并监听进度
  3. Linux环境下的Nodejs
  4. DispatcherServlet--Spring的前置控制器作用简介
  5. Windows下JNI执行步骤
  6. 使用HQL语句的按照参数名字查询数据库信息的时候 “=:”和参数之间不能存在空格,否则会报错
  7. SVN库实时同步设置
  8. 谁会是 Zabbix 和 Nagios 的继任者?
  9. C# Lambda Expressions 简介
  10. Pycharm中的实用功能(网上看到的,感觉还不错)