Parallel.ForEach与foreach相比的优势怎么体现[通俗易懂]

Parallel.ForEach与foreach相比的优势怎么体现[通俗易懂]为什么80%的码农都做不了架构师?>>>…

大家好,又见面了,我是你们的朋友全栈君。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    public class People
    {
        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private int age;

        public int Age
        {
            get { return age; }
            set { age = value; }
        }
        private Byte sex;

        public Byte Sex
        {
            get { return sex; }
            set { sex = value; }
        }
        private string school;

        public string School
        {
            get { return school; }
            set { school = value; }
        }

    }
    class Program
    {
        static void Main(string[] args)
        {
            List<People> pd = new List<People>();
            for(int i = 0; i < 72000; i++)
            {
                People people = new People();
                people.Id = i;
                people.Sex = 1;
                if(i<36000){
                    people.Age = 23;
                    people.Name= "MJ" + i;
                    people.School="NC";
                }else
                {
                    people.Name= "KD" + i;
                    people.Age = 24;
                    people.School="UCLA";
                }
                pd.Add(people);
            }

            System.DateTime currentTime0 = System.DateTime.Now;
            foreach (People p in pd)
            {
                p.Id += 1;
                p.Name = "aaa";
                p.Age = 40;
                p.Sex = 1;
                Console.WriteLine(p.Id + ", " + p.Name + ", " + p.School);
            }
            System.DateTime currentTime1 = System.DateTime.Now;
            Parallel.ForEach(pd, p =>
            {
                p.Id += 1;
                p.Name = "bbb";
                p.Age = 35;
                p.Sex =0;
                Console.WriteLine(p.Id + ", " + p.Name + ", " + p.School);
            });
            System.DateTime currentTime2 = System.DateTime.Now;

            Console.WriteLine(currentTime0.ToString() + " " + currentTime0.Millisecond.ToString());
            Console.WriteLine(currentTime1.ToString() + " " + currentTime1.Millisecond.ToString());
            Console.WriteLine(currentTime2.ToString() + " " + currentTime2.Millisecond.ToString());
            Console.ReadKey();
        }
    }
}

输出过程中,明显看到第二个循环比第一个快了很多很多,但是看最后的时间差却失望了:

2014/08/29 15:37:50 401

2014/08/29 15:37:59 246

2014/08/29 15:38:08 185

 

 

转载于:https://my.oschina.net/mj23/blog/308043

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161809.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • web安全书籍_web安全书单

    web安全书籍_web安全书单基础书籍《信息安全标准和法律法规(第二版)》(注:武汉大学出版社)《HTTP权威指南》《HTML5权威指南》《JavaScript权威指南(第6版)》《TCP/IP详解卷1:协议》《SQL编程基础(原书第3版)》《PHP和MySQLWeb开发(第四版)》《PHP安全基础》《PHP应用程序安全编程》《高级PHP应用程序漏洞审核技术》《精通正则表达式(第

    2022年9月16日
    0
  • pthreads php 安装全过程[通俗易懂]

    pthreads php 安装全过程

    2022年2月17日
    35
  • pycharm交互式编程_环境影响因素有哪些

    pycharm交互式编程_环境影响因素有哪些讲解关于PycharmIDE当中一个叫做PythonConsole交互式开发环境。关于这个环境长什么样子以及怎么用,可以跟着我的步骤来看看。一、使用PythonConsole交互式开发环境打开Pycharm界面,然后单击界面最下面的PythonConsole这个按钮,单击后会调出一个控制台,这个控制台将自动加载已经调试过的解释器。在这个控制台里,程序员可以在三个绿色箭头>>>后面直接书写代码,在不加print的时候也行输出数据,当然print在这里也是可以用的。左边

    2022年8月27日
    3
  • 硬件设计——外围电路(电源电路)[通俗易懂]

    硬件设计——外围电路(电源电路)[通俗易懂]引言 当我们设计一个完整的电路而言,我们除了要知道我们要设计的主芯片电路,如FPGA,DSP,还要知道一些外围电路,如电源电路,复位电路、晶振电路等等。这篇文章我们先来讲解一下对于如何设计一个电源电路。 正文 首先我们查询主芯片的datesheet,根据datesheet,可知主芯片采用多大的电压才能正常工作,然后我们根据其设计电源电路。每个电子设备都有一个供给能量的电源电路。电源电路有整流电源、逆变电源和变频器三种。常见的家用电器中多数要用到直流电源。直流电源的最简单的供电方法是用电池。..

    2022年5月6日
    69
  • 我的世界服务器显示标指令,我的世界服务器指令|我的世界服务器指令大全「建议收藏」

    我的世界服务器显示标指令,我的世界服务器指令|我的世界服务器指令大全「建议收藏」一砖一瓦一世界,这里是uc129我的世界专区。做为有着极高自由度的3d沙盘游戏我的世界来说,带给玩家的不止是视觉上的享受,通过自己的努力打造属于自己的游戏王国,则是游戏的魅力所在。对于minecraft服务器管理员来说,熟练掌握我的世界服务器指令是至关重要的。如果辛辛苦苦建立好服务器却发现对我的世界服务器指令根本就不了解,这是何等的杯具。接下来uc129小编将给大家分享一些服务器指令方面的内容,我…

    2022年9月23日
    1
  • JAVA Map转List

    JAVA Map转List将Map的key转成List:ListmapKeyList=newArrayList(map.keySet());将Map的Value转成List:ListmapValueList=newArrayList(map.valueSet());

    2022年7月26日
    18

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号