posts - 609,  comments - 13,  views - 64万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
参考:https://docs.microsoft.com/zh-cn/dotnet/standard/parallel-programming/introduction-to-plinq
1
2
3
4
5
6
7
8
9
10
var source = Enumerable.Range(1, 10000);
            // Opt in to PLINQ with AsParallel.
            //执行模式 WithExecutionMode 如果你通过测试和测量知道特定查询以并行方式执行得更快时,可以强制指定并行查询。
            //并行度 WithDegreeOfParallelism 默认情况下,PLINQ 使用主机计算机上的所有处理器。
            var evenNums = from num in source.AsParallel()
                           .WithExecutionMode(ParallelExecutionMode.ForceParallelism)
                           .WithDegreeOfParallelism(2)
                           where num % 2 == 0
                           select num;
            Console.WriteLine("{0} even numbers out of {1} total", evenNums.Count(), source.Count());

evenNums.ForAll(x=> Console.WriteLine(x));//并行结果,不合并,直接循环输出各个结果
evenNums.ToList().ForEach(x => Console.WriteLine(x));//将并行得到的结果合并成一个,然后循环输出
执行模式:默认情况下,PLINQ 是保守的。 在运行时,PLINQ 基础结构将分析查询的总体结构。 如果通过并行可能会提高查询速度,PLINQ 则将源序列分区为可以同时运行的任务。 如果并行化查询不安全,PLINQ 则只会按顺序运行查询。 如果 PLINQ 可以在可能会较昂贵的并行算法或成本较低的顺序算法之间进行选择,它会默认选择顺序算法。

posted on   邢帅杰  阅读(253)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
历史上的今天:
2021-08-05 idea配置tomcat,idea和tomcat版本不一致输出json会报500错误,解决localhost:8080 is already in use问题,解决idea控制台日志乱码
点击右上角即可分享
微信分享提示