码迷,mamicode.com
首页 > 其他好文 > 详细

Parallel.ForEach 之 MaxDegreeOfParallelism

时间:2020-01-02 19:06:26      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:ipaddr   text   pool   tar   reads   eof   使用   art   ESS   

参考: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

标签:ipaddr   text   pool   tar   reads   eof   使用   art   ESS   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!