C# 多线程 Parallel.For 和 For 谁的效率高?

还是那句话:十年河东,十年河西,莫欺少年穷。

今天和大家探讨一个问题:Parallel.For 和 For 谁的效率高呢?

从CPU使用方面而言,Parallel.For 属于多线程范畴,可以开辟多个线程使用CPU内核,也就是说可以并行处理程序。For 循环是单线程的,一个线程执行完所有循环。

举例说明:

        static void Main(string[] args)
        {
            Console.WriteLine("Parallel.For输出如下:");
            ParallelLoopResult result =
            Parallel.For(0, 10, i =>
            {
                Console.WriteLine(i);
            });
            Console.WriteLine("For输出如下:");
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(i);
            }
            Console.ReadKey();
        }

时间: 2024-11-10 14:45:48

C# 多线程 Parallel.For 和 For 谁的效率高?的相关文章

.net多线程 Parallel

1.主线程参与计算 1 //用Task完成这个 你们会吗 不在意那个主线程参与计算的事儿 2 //Parallel.Invoke(() => this.Coding("爱书客", "Client") 3 // , () => this.Coding("风动寂野", "Portal") 4 // , () => this.Coding("笑看风云", "Service")

java多线程(七)提高锁的效率——使用读写锁

转载请注明出处:http://blog.csdn.net/xingjiarong/article/details/47947515 之前我们讲过ReentrantLock,这种锁不区分读操作和写操作,如果有一个线程在执行读操作,那么其他的所有的线程不能进行任何的读操作或者写操作.这样可以保证程序的互斥性,但是降低了程序的并发性,使执行效率降低,没有有效的发挥多线程的优势.比如说,有一个系统,主要是以读操作为主,比如有10个线程负责读数据,只有一个线程负责写数据.如果用我们之前的Reentrant

多线程总结一:基本概念

1.线程和进程a.并发性(concurrency):在同一时刻只能有一条指令执行,当多个进程指令被快速轮换执行,在宏观上具有多个进程同时执行的效果.b.并行性(parallel):在同一时刻,有多条指令在多个处理器上同时执行.c.操作系统可以同时执行多个任务,每个任务就是进程:进程可以同时执行多个任务,每个任务就是线程.d.操作系统支持多进程并发采用的策略有:共享式多任务操作策略(Windows3.1.Mac OS9).抢占式多任务操作策略(Windows NT.Windows 2000以及UN

Java多线程之线程的创建

好久没有更博客了,最近一直在忙工作的事情.现在终于空下来了,这2天会抓紧时间整理多线程和socket,把JavaSE结束掉. 关于多线程,首先会涉及到哪些东西呢?首先要了解线程,为什么要使用线程,线程有什么优势,线程和进程有什么区别呢?了解过大致的线程内容后,就应该编码来实现Java的多线程了.首先2种方式来创建线程类,然后调用对应的API来控制线程.然后还剩下一个最大的也是最重要的一块知识,就是线程同步.前面那些了解线程的生命周期就可以,实际编码中并不会多次写到那些编码,但是线程的同步经常要用

SQL Server调优系列玩转篇三(利用索引提示(Hint)引导语句最大优化运行)

前言 本篇继续玩转模块的内容,关于索引在SQL Server的位置无须多言,本篇将分析如何利用Hint引导语句充分利用索引进行运行,同样,还是希望扎实掌握前面一系列的内容,才进入本模块的内容分析. 闲言少叙,进入本篇的内容. 技术准备 数据库版本为SQL Server2012,利用微软的以前的案例库(Northwind)进行分析,部分内容也会应用微软的另一个案例库AdventureWorks. 相信了解SQL Server的朋友,对这两个库都不会太陌生. 一.并行Hint提示 (MAXDOP N

J2EE进阶技术标准(1)——Servlet/JSP

Servlet/JSP Servlet定义:部署在java的Web服务器上的组件,整个java服务端程序都构建在Servlet之上,以多线程方式提 供服务,具有效率高,可扩展,可移植的特点. JSP的定义: 所有JSP页面在执行过程中,都会被变异成Servlet,由JSP页面生成的Servlet叫做"JSP"页面实现类,可以把 JSP理解为嵌入了Java语句的HTML页面文件. Servlet与JSP的关系: 在页面展现上,Servlet通过输出HTML语句来实现动态页面,如果SUN不

OC-@property内存管理中的参数

//1.生产get与set方法的声明 //2.生成get与set方法的简单实现 /*       - (void)setCar:(Car *)car{ _car = car; } - (Car *)car{ return _car; } */ //3.若果你没有声成名相对象的成员变量,那么他会自动生成一个_开头的成员变量 //@property 参数分为4类 /* 1.与set方法内存管理相关参数 retain: 要生成符合内存管理原则的set方法(应用与对象类型),(只在setter中rele

【2017年最新】iOS面试题及答案

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px "PingFang SC Semibold"; color: #464646 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px "PingFang SC"; min-height: 21.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px

JavaSE理论篇

将已学过的知识记录在此,既能便于以后温习又能方便知识共享,做到共同成长. 计算机语言发展简史 主要分为三个阶段 机器语言:打点机,有点表示1,没有表示0,打点计时器 低级语言:汇编语言 高级语言:Java C/C++  web执行效率比低级语言低 Java发展简史 Java是一种语言,具有自己的语法和数据结构. Java来自于sun ,sun指的是斯坦福大学网络. 具体发展历程 时间 描述 1991~1995 Sun为了占领智能消费电子产品市场,由james gosling 负责该项目,来开发O