zoukankan      html  css  js  c++  java
  • 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来区分,可以有效的提高速度。

  • 相关阅读:
    使用 %matplotlib inline 出错?
    RandomForest 调参
    sql中的笛卡尔积
    Sublime text 3 搭建Python3 IDE
    在Windows Python3.5 安装LightGBM
    lodash获取数组或对象的值 at
    lodash 移除数据元素 pull without 删除数组元素
    js 常用类型转换简写
    UTC时间格式转换
    CSS Flexible 布局兼容性以及解决方案
  • 原文地址:https://www.cnblogs.com/kinger906/p/3490955.html
Copyright © 2011-2022 走看看