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 
  • 相关阅读:
    USACO 2.3 和为零 (DFS)
    公牛和母牛 (Standard IO)
    【NOIP2016提高A组模拟10.15】算循环
    USACO 2.2 集合(DP)
    USACO 2.2 序言页码 (MATH)
    NET实现微信公共平台上传下载多媒体文件(转)
    asp.net 模拟CURL调用微信公共平台API 上传下载多媒体文
    LINQ to SQL语句
    JS时间(日期)比较或相减(暂时停用)
    json格式字符串处理
  • 原文地址:https://www.cnblogs.com/zyip/p/2631550.html
Copyright © 2011-2022 走看看