zoukankan      html  css  js  c++  java
  • .net concurrency(parallel) data concurrency foreach

     
      static void Main(string[] args)
            {
                int[] arr= new int[1000];
                for (int i = 0; i < arr.Length; i++)
                {
                    arr[i] = i;
                }

                //sequential ForEach
                int b = 0;
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
                foreach (var x in arr)
                {
                    b = b + x;
                    System.Threading.Thread.Sleep(1);
                    //Console.WriteLine(x);
                }
                stopwatch.Stop();
                Console.WriteLine("Sequential loop time in milliseconds: {0} ,value of b:{1}", stopwatch.ElapsedMilliseconds,b);

                //currency ForEach
                b = 0;
                stopwatch.Reset();
                stopwatch.Start();
                Console.WriteLine("-------------------");
                    Parallel.ForEach(arr,
                            (x) =>
                            {
                                //lock
                                /*
                                var t = "";
                                lock(t){
                                    b = b + x;
                                }
                                
    */
                                Interlocked.Add(ref b,x);
                                System.Threading.Thread.Sleep(1);
                                //Console.WriteLine(x);
                            }
                        );
                    stopwatch.Stop();
                    Console.WriteLine("Concurrency loop time in milliseconds: {0} ,value of b:{1}", stopwatch.ElapsedMilliseconds,b);
                Console.Read();

            } 

    http://msdn.microsoft.com/en-us/library/dd460717.aspx 

    http://msdn.microsoft.com/en-us/library/ff963552.aspx 
  • 相关阅读:
    [THUWC2017]在美妙的数学王国中畅游
    添加右键使用 SublimeText 打开
    添加右键使用 SublimeText 打开
    添加右键使用 SublimeText 打开
    安装 wordpress 出现 抱歉,我不能写入wp-config.php文件
    安装 wordpress 出现 抱歉,我不能写入wp-config.php文件
    安装 wordpress 出现 抱歉,我不能写入wp-config.php文件
    使用 Resharper 快速做适配器
    使用 Resharper 快速做适配器
    使用 Resharper 快速做适配器
  • 原文地址:https://www.cnblogs.com/zyip/p/2631550.html
Copyright © 2011-2022 走看看