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

posted on 2013-12-25 16:37  kingtiger  阅读(540)  评论(0编辑  收藏  举报

导航