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 
  • 相关阅读:
    移动端开发常见的坑
    javascript的原始类型(primitive type)之间的关系。
    微信小程序学习:开发注意点
    canvas学习(一):线条,图像变换和状态保存
    css模仿微信弹出菜单
    html5 canvas绘制环形进度条,环形渐变色仪表图
    vue学习笔记(三):vue-cli脚手架搭建
    nodejs基础学习
    css3美化radio样式
    基于angular+bower+glup的webapp
  • 原文地址:https://www.cnblogs.com/zyip/p/2631550.html
Copyright © 2011-2022 走看看