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 
  • 相关阅读:
    CDH6.3.1安装详细步骤(感写B站若泽大数据)
    windows远程ubuntu UI教程
    CentOS7搭建Tensorflow计算环境(cuda+cudnn+jupyterlab(Anaconda3)+pytorch+Tensorflow)
    中国计算机学会推荐国际学术会议和期刊目录-2019
    基于BA网络模型的二部图数据集生成
    GitHub文件的克隆与上传
    博客园中随笔,文章的区别
    Pycharm新建文件时头部模板的配置方法
    asyncio 和aiohttp
    随机UA
  • 原文地址:https://www.cnblogs.com/zyip/p/2631550.html
Copyright © 2011-2022 走看看