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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 对数的计算公式[通俗易懂]

    对数的计算公式[通俗易懂]性质编辑①;②;③负数与零无对数.④*=1;恒等式及证明a^log(a)(N)=N(a>0,a≠1)推导:log(a)(a^N)=N恒等式证明在a>0且a≠1,N>0时设:当l

    2022年8月1日
    6
  • unity c#面试_spring面试题及答案

    unity c#面试_spring面试题及答案无论是不是C#或者Unity开发者,均可用以下题型锻炼,面试教育你懂的需要注意的是下面都只是个人乱答,想看标准答案的可滚动到最后下载1.请简述值类型与引用类型的区别我是想简述下为什么第一个问题总是这个,因为所有出题的面试官都不走心的,实际项目肯定是引用类型+值类型混用,难道你没写过?intcurrLevel=Game.Instance.LevelCount;值类型包括:数值类型,结构体,b…

    2022年8月29日
    6
  • Redis如何启动_电脑一直卡在配置更新100%

    Redis如何启动_电脑一直卡在配置更新100%Redis的配置、启动、操作和关闭一.启动Redis1.默认配置启动执行redis-server命令,按照默认的redis.conf配置文件中的配置启动Redis,如下:因为默认配置无法自定义配置。所以该方式不会再生产环境中使用2.运行配置启动在命令redis-server后加上要修改的配置名和值(可以设置多对),没有设置的………

    2022年9月17日
    2
  • MySQL默认事物隔离级别_sqlserver事务隔离级别

    MySQL默认事物隔离级别_sqlserver事务隔离级别mysql数据库事务的隔离级别有4个,而默认的事务处理级别就是【REPEATABLE-READ】,也就是可重复读。下面本篇文章就来带大家了解一下mysql的这4种事务的隔离级别,希望对大家有所帮助。SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。mysql的4种事务隔离级别,如下所示:…

    2025年10月27日
    2
  • 连不上docker mysql_docker跨主机通信

    连不上docker mysql_docker跨主机通信宿主机连接docker中的mysqldokcer安装mysqldockerrun\–namemysql\-v$PWD/mysql:/var/lib/mysql\-p3306:3306\-eMYSQL_ROOT_PASSWORD=123456\-dmysql:5.7宿主机连接docker中的mysql错误的连接方式$mysql-uroot-pEnterpasswor…

    2022年8月21日
    6
  • 计算机弹歌曲乐谱大全绿色_小精灵钢琴谱简易版

    计算机弹歌曲乐谱大全绿色_小精灵钢琴谱简易版【小Z键盘钢琴】以下歌谱对应的键是跟默认键是不一样的,我已经打包了,只要把歌谱.ini改成系统.ini然后重启软件,这样就改好了,然后可以按照以下歌谱试弹一下!海阔天空就是此键盘钢琴的第一首钢琴曲(对不起,弹的时候是边看琴谱,边弹的,所以听起来太纠结了.)请到软件安装的目录查找!1.播放录音功能:点击播放按钮,会提示打开录音文件(XZ格式的文件)2.记录功能:点记录,会显示状态:”正在记录…

    2022年8月21日
    10

发表回复

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

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