惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
罗磊的独立博客
The GitHub Blog
The GitHub Blog
V
V2EX
Last Week in AI
Last Week in AI
博客园 - 聂微东
MyScale Blog
MyScale Blog
美团技术团队
L
LangChain Blog
博客园 - Franky
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园_首页
S
SegmentFault 最新的问题
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Stack Overflow Blog
Stack Overflow Blog
量子位
小众软件
小众软件
宝玉的分享
宝玉的分享
J
Java Code Geeks
Google DeepMind News
Google DeepMind News
D
Docker
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

博客园 - J.D Huang

TinyDO:可能是WP首个支持中文语音识别的待办事项APP Internet TV 影音娱乐新生活 Windows Phone Developer Tools CTP 发布了! Python - 默认参数的一次性求值 Python小技巧 – True or False Python小技巧 - 子串查找 - J.D Huang 新的个人博客@ http://thinkbot.info MeeGo:下一个Android? Windows Mobile 6.5.3 Developer Tool Kit 发布了 塞班(Symbian)开源了(包括Symbian 3和S60等) Windows Mobile 6.5 SDK 发布了 (2月17日更新) C#4.0新特性之(四)新的LINQ扩展方法-Zip() C#4.0新特性之(三)协变与逆变 C#4.0新特性之(二)命名参数,可选参数与COM互操作 C#4.0新特性之(一)动态查找 Android手机防盗工具DroidGuard Simple HostMonitor 实用的网管小工具 Office Mobile 2010 Beta 发布了! - J.D Huang Lambda演算与科里化(Currying)
试了一下.Net Fx 4.0中的Parallel - J.D Huang
J.D Huang · 2009-11-15 · via 博客园 - J.D Huang

        static string[] arr = Directory.GetFiles(
                                          
@"C:\Users\Public\Pictures\Sample Pictures"
                                          
"*.jpg");

        
//这里Spin的数值最好自行modify一下,我的是Q6600的机子 
        static void SimulateProcessing() { Thread.SpinWait(1000000000); } 
        
static string TID get return " TID = " + Thread.CurrentThread.Mana
gedThreadId.ToString(); }
 }

        
static void Main(string[] args)
        
{
            
//foreach (string name in arr)
            
//{
            
//    Program.SimulateProcessing();
            
//    Console.WriteLine(name + TID);
            
//}

            Parallel.ForEach(arr, (
string name) =>
            
{
                Program.SimulateProcessing();
                Console.WriteLine(name 
+ TID);
            }
);
            Console.ReadLine();
        }

采用并行的Foreach效果的确很明显.不仅仅是指派了多个线程,对cpu的利用率也高很多,
见下面两图比较:
原来的foraech:

使用parallel的foreach:

有兴趣的朋友可以对parallel相应的类库做一下逆向工程分析一下it的原理;-)