首页 > 其他 > 详细

Parallel.ForEach 之 MaxDegreeOfParallelism

时间:2020-01-02 19:11:24      阅读:294      评论:0      收藏:0      [点我收藏+]

参考:Max Degree of Parallelism最大并行度配置

结论:

  1. 与设置的线程数有关
  2. 有设置的并行度有关

测试如下:

技术分享图片

@@@code

System.Threading.ThreadPool.SetMinThreads(20, 20);

System.Threading.ThreadPool.SetMinThreads(50, 50);

var list = GetIPByMask(IPAddress.Parse("192.168.10.1"), IPAddress.Parse("255.255.255.0"));

System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();

stopwatch.Start();

Parallel.ForEach(list, new ParallelOptions() { MaxDegreeOfParallelism=6}, a =>

{

var status = Ping(a.ToString(), (ip, ex) => Console.WriteLine($"ping {ip},{ex.Message}"), 1000);

Console.WriteLine($"at {DateTime.Now.Second} ping {a.ToString()} {status.ToString()}");

}

);

//foreach (var a in list)

//{

// var status = Ping(a.ToString(), (ip, ex) => Console.WriteLine($"ping {ip},{ex.Message}"), 1000);

// Console.WriteLine($"at {DateTime.Now.Second} ping {a.ToString()} {status.ToString()}");

//}

Console.WriteLine($"平均每秒处理:{(int)Math.Ceiling( list.Count/stopwatch.Elapsed.TotalSeconds)}" );

Console.Read();

@@#

?

  1. 不设置线程数,不限制并行数,每秒约9个

技术分享图片

  1. 不使用并行,等到花都谢了

技术分享图片

  1. 增加线程数,

不限制并行数

技术分享图片

并行设为2

技术分享图片

并行设为6

技术分享图片

?

?

?

?

Parallel.ForEach 之 MaxDegreeOfParallelism

原文:https://www.cnblogs.com/QinQouShui/p/12134232.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!