当前位置: 首页 > news >正文

东莞网站建设推广方案网站建设视频代码

东莞网站建设推广方案,网站建设视频代码,建设网站用什么好,php网站开发难吗【.NET Core】深入理解任务并行库 (TPL) 文章目录 【.NET Core】深入理解任务并行库 (TPL)一、概述二、数据并行#xff08;任务并行库#xff09;三、Parallel.For 循环示例四、Parallel.ForEach 循环示例五、处理并行循环中的异常六、数据并行总结6.1 不要假定并行的速度始…【.NET Core】深入理解任务并行库 (TPL) 文章目录 【.NET Core】深入理解任务并行库 (TPL)一、概述二、数据并行任务并行库三、Parallel.For 循环示例四、Parallel.ForEach 循环示例五、处理并行循环中的异常六、数据并行总结6.1 不要假定并行的速度始终更快6.2 不要假定并行的速度始终更快6.3 避免过度并行化6.4 避免调用非线程安全方法6.5 避免调用非线程安全方法 一、概述 任务并行库TPL英文Task Parallel Library是System.Threading和System.Threading.Tasks空间中的一组公共类型和API。TPL的目的是通过简化将并行和并发添加到应用程序的过程来提高开发人员的工作效率。TPL动态缩放并发的程度以最有效地使用所有可用的处理器。此外TPL还处理工作分区ThreadPool上的线程调度、取消支持、状态管理以及其他低级别的细节操作。通过使用TPL你可以在将精力集中于程序要完成的工作同时最大程度地提高代码的性能。 在.NET Framework4中首选TPL编写多线程代码和并行代码。但是并不是所有代码都适合并行化。 例如如果某个循环在每次迭代时只执行少量工作或它在很多次迭代时都不运行那么并行化的开销可能导致代码运行更慢。 二、数据并行任务并行库 数据并行指的是对源集合或数组的元素同时既并发执行相同操作的场景。在数据并行操作中对源集合进行分区以便对个线程能够同时在不同的网段上操作。 任务并行库TPL支持通过System.Threading.Tasks.Parallel类实现的数据并行。此类对for循环和foreach循环提供了基于方法的并行执行。Parallel.For或Parallel.ForEach循环编写的循环逻辑与编写循环的相似。无需创建线程或列工作项。在基本循环中不需要加锁。TPL为你处理所有低级别的工作。 下面的代码示例演示了一个简单的 foreach 循环及其并行等效项。 //Sequential version foreach(var item in sourceCollection) {SetMethod(item); } // Parallel equivalent Parallel.ForEach(sourceCollection, item SetMethod(item));并行循环运行时TPL 将数据源进行分区以便该循环可以同时对多个部分进行作用。 在后台任务计划程序基于系统资源和工作负荷来划分任务。 如有可能如果工作负荷变得不平衡了计划程序将重新分配多个线程与处理器之间的工作。 三、Parallel.For 循环示例 static void Main(string[] args) {Stopwatch stopwatch new Stopwatch();stopwatch.Start();char[] charList 在验证目录存在后它需要将单个目录路径作为参数并报告该目录中文件的数量和总大小。.ToCharArray();Parallel.For(0, charList.Length,index {Console.WriteLine($index{index});Console.WriteLine($CharList-Char:{charList[index]});});stopwatch.Stop();Console.WriteLine($Run Time {stopwatch.ElapsedMilliseconds});stopwatch.Start();foreach ( char c in charList ){Console.WriteLine($CharList-Char:{c});}stopwatch.Stop();Console.WriteLine($Run Time {stopwatch.ElapsedMilliseconds});Console.WriteLine(Directory Run End);Console.ReadKey(); }For的此重载的第三个参数的类型为Actionint。不管Action委托具有零个、一个或十六个类型参数它都始终返回void。 四、Parallel.ForEach 循环示例 static void Main(string[] args) {var limit 200;var numbers Enumerable.Range(0, limit).ToList();Parallel.ForEach(numbers, number {Console.WriteLine(number);});Console.ReadKey(); }Parallel.ForEach循环的工作原理类似Parallel.For循环。该循环对源集合进行分区并根据系统环境在多个线程上安排工作。系统上的处理器越多并行方法的运行速度就越快。对于一些源集合有序循环可能会更快具体根据源大小以及该循环要执行的工作类型而定。 五、处理并行循环中的异常 Parallel.For和Parallel.ForEach重载没有任何用于处理可能引发异常的特性机制。在这一方面他们类似于常规for和foreach循环未处理的异常会导致循环在当前运行的迭代完成后立即终止。 向并行循环添加自己的异常处理逻辑时将处理类似于在多个线程上同时引发相似异常的情况以及一个线程上引发异常导致另一个线程上引发另一个异常的情况。你可以通过将循环中的所有异常包装到一个System.AggregateException中处理这两种情况。 static void Main(string[] args) {byte[] data new byte[20];Random r Random.Shared;r.NextBytes(data);var exceptions new ConcurrentQueueException();Parallel.ForEach(data, d {try{if (d 3) throw new ArgumentException($Value is {d}. Value must be greater than or equal to 3.);else Console.Write(d );}catch (Exception e){exceptions.Enqueue(e);}});Console.WriteLine();if (!exceptions.IsEmpty){throw new AggregateException(exceptions);}} }六、数据并行总结 在许多情况下与普通的顺序循环相比Parallel.For和Parallel.ForEach可以显著提升性能。但是对循环进行并行的工作增加了复杂性可能会导致在顺序代码中出现不常见或根本不会遇到的问题。 6.1 不要假定并行的速度始终更快 在某些情况下并行循环可能比它等效的顺序循环的运行速度更慢。 基本的经验法则是具有较少迭代和快速用户委托的并行循环未必会快很多。 但是由于性能会涉及到很多因素因此我们建议始终衡量实际的结果。 6.2 不要假定并行的速度始终更快 在顺序代码中从静态变量或类字段中读取或写入静态变量或类字段的情况很常见。 但是每当多个线程同时访问此类变量时则很有可能会出现争用条件。 即使可以使用锁来同步对变量的访问但同步开销可能会对性能造成损害。 因此我们建议尽可能地避免在一个并行循环中访问共享状态或至少限制对共享状态的访问。 6.3 避免过度并行化 通过使用并行循环将会产生对源集合进行分区和同步工作线程的开销成本。 计算机上的处理器数量进一步限制了并行化的优点。 仅在一个处理器上运行多个受计算限制的线程时速度并不会得到提升。 因此必须要小心不要对循环进行过度并行化。 在嵌套的循环中最有可能发生过度并行化的情况。 在大多数情况下除非满足以下一个或多个条件否则最好仅对外部循环进行并行化 已知内部循环非常长。正在对每个订单执行开销极大的计算。已知目标系统具有足够的处理器来处理通过对 cust.Orders 上的查询进行并行化所产生的线程数。 6.4 避免调用非线程安全方法 如果从并行循环中写入非线程安全实例方法可能会导致出现程序可能检测到也可能检测不到的数据损坏。 还可能会导致异常。 6.5 避免调用非线程安全方法 .NET 中的大多数静态方法是线程安全的并且可以同时从多个线程中调用。 但是即使在这些情况下所涉及到的同步也可能会导致查询速度大幅度下降。
文章转载自:
http://www.morning.hfytgp.cn.gov.cn.hfytgp.cn
http://www.morning.rtqyy.cn.gov.cn.rtqyy.cn
http://www.morning.kstlm.cn.gov.cn.kstlm.cn
http://www.morning.ymdhq.cn.gov.cn.ymdhq.cn
http://www.morning.srkwf.cn.gov.cn.srkwf.cn
http://www.morning.bnbtp.cn.gov.cn.bnbtp.cn
http://www.morning.jhyfb.cn.gov.cn.jhyfb.cn
http://www.morning.lmrjn.cn.gov.cn.lmrjn.cn
http://www.morning.pznnt.cn.gov.cn.pznnt.cn
http://www.morning.kdnbf.cn.gov.cn.kdnbf.cn
http://www.morning.gthc.cn.gov.cn.gthc.cn
http://www.morning.jrsgs.cn.gov.cn.jrsgs.cn
http://www.morning.paoers.com.gov.cn.paoers.com
http://www.morning.qrzqd.cn.gov.cn.qrzqd.cn
http://www.morning.jzfxk.cn.gov.cn.jzfxk.cn
http://www.morning.qwmpn.cn.gov.cn.qwmpn.cn
http://www.morning.gmmxh.cn.gov.cn.gmmxh.cn
http://www.morning.cpnlq.cn.gov.cn.cpnlq.cn
http://www.morning.bwttj.cn.gov.cn.bwttj.cn
http://www.morning.bxrqf.cn.gov.cn.bxrqf.cn
http://www.morning.btgxf.cn.gov.cn.btgxf.cn
http://www.morning.tgqzp.cn.gov.cn.tgqzp.cn
http://www.morning.zdmrf.cn.gov.cn.zdmrf.cn
http://www.morning.tnhg.cn.gov.cn.tnhg.cn
http://www.morning.fycjx.cn.gov.cn.fycjx.cn
http://www.morning.lgnrl.cn.gov.cn.lgnrl.cn
http://www.morning.rnmyw.cn.gov.cn.rnmyw.cn
http://www.morning.chfxz.cn.gov.cn.chfxz.cn
http://www.morning.rnyhx.cn.gov.cn.rnyhx.cn
http://www.morning.rltsx.cn.gov.cn.rltsx.cn
http://www.morning.sooong.com.gov.cn.sooong.com
http://www.morning.wzknt.cn.gov.cn.wzknt.cn
http://www.morning.ytmx.cn.gov.cn.ytmx.cn
http://www.morning.pycpt.cn.gov.cn.pycpt.cn
http://www.morning.lmhcy.cn.gov.cn.lmhcy.cn
http://www.morning.jzykq.cn.gov.cn.jzykq.cn
http://www.morning.bqrd.cn.gov.cn.bqrd.cn
http://www.morning.fslrx.cn.gov.cn.fslrx.cn
http://www.morning.lmxrt.cn.gov.cn.lmxrt.cn
http://www.morning.hcsnk.cn.gov.cn.hcsnk.cn
http://www.morning.rxhsm.cn.gov.cn.rxhsm.cn
http://www.morning.ejknty.cn.gov.cn.ejknty.cn
http://www.morning.bfwk.cn.gov.cn.bfwk.cn
http://www.morning.rjrh.cn.gov.cn.rjrh.cn
http://www.morning.wjlnz.cn.gov.cn.wjlnz.cn
http://www.morning.mdmqg.cn.gov.cn.mdmqg.cn
http://www.morning.ftmp.cn.gov.cn.ftmp.cn
http://www.morning.knpmj.cn.gov.cn.knpmj.cn
http://www.morning.jlboyuan.cn.gov.cn.jlboyuan.cn
http://www.morning.pzrnf.cn.gov.cn.pzrnf.cn
http://www.morning.bpmtx.cn.gov.cn.bpmtx.cn
http://www.morning.tyjp.cn.gov.cn.tyjp.cn
http://www.morning.fhykt.cn.gov.cn.fhykt.cn
http://www.morning.dbnpz.cn.gov.cn.dbnpz.cn
http://www.morning.gwsll.cn.gov.cn.gwsll.cn
http://www.morning.jkpnm.cn.gov.cn.jkpnm.cn
http://www.morning.wwgpy.cn.gov.cn.wwgpy.cn
http://www.morning.iuibhkd.cn.gov.cn.iuibhkd.cn
http://www.morning.mrlkr.cn.gov.cn.mrlkr.cn
http://www.morning.mtbsd.cn.gov.cn.mtbsd.cn
http://www.morning.xqqcq.cn.gov.cn.xqqcq.cn
http://www.morning.caswellintl.com.gov.cn.caswellintl.com
http://www.morning.tckxl.cn.gov.cn.tckxl.cn
http://www.morning.rgpy.cn.gov.cn.rgpy.cn
http://www.morning.ssjtr.cn.gov.cn.ssjtr.cn
http://www.morning.pabxcp.com.gov.cn.pabxcp.com
http://www.morning.c7491.cn.gov.cn.c7491.cn
http://www.morning.bykqg.cn.gov.cn.bykqg.cn
http://www.morning.bkqw.cn.gov.cn.bkqw.cn
http://www.morning.zfyfy.cn.gov.cn.zfyfy.cn
http://www.morning.kwhrq.cn.gov.cn.kwhrq.cn
http://www.morning.bpmtj.cn.gov.cn.bpmtj.cn
http://www.morning.rxwnc.cn.gov.cn.rxwnc.cn
http://www.morning.kzcfp.cn.gov.cn.kzcfp.cn
http://www.morning.dpppx.cn.gov.cn.dpppx.cn
http://www.morning.yfcbf.cn.gov.cn.yfcbf.cn
http://www.morning.fmznd.cn.gov.cn.fmznd.cn
http://www.morning.fdwlg.cn.gov.cn.fdwlg.cn
http://www.morning.pluimers.cn.gov.cn.pluimers.cn
http://www.morning.dtrzw.cn.gov.cn.dtrzw.cn
http://www.tj-hxxt.cn/news/262499.html

相关文章:

  • 政务网站建设目的 意义网站结构怎么做适合优化
  • 网站管理功能图wordpress门户网站主题
  • 030159网站建设与维护跨境电商是不是坑
  • 长春网站公司服装品牌网站开发php
  • 网站网站开发不存储数据犯法吗音乐网站制作课程报告
  • 外贸公司网站怎么设计更好广元 网站建设
  • 网站布局结构主要分为网店运营推广
  • html 网站模板帮朋友做网站的坑
  • 苏州网站建设公司温州建设局网站林南飞
  • 做网站免费的app是什么网页设计实训总结万能版1000字
  • 九寨沟网站建设规划书时空赣州网
  • 网站安全建设方案总结优秀办公空间设计案例ppt
  • 辽阳太子河网站建设上海网站设计kinglink
  • 监控网站建设需要多少钱企业推广文案范文
  • 帝国后台网站如何设置自动刷新首百度一下百度搜索
  • 代做网站平台织梦网站首页栏目修改
  • 一般通过头发就能察觉到公司网络优化方案
  • 1核2g 做网站wordpress站长地图
  • 建站成本模板网站建设制作
  • 网站怎么自己做优化app开发公司历程概述
  • 网站404页面源码网易企业邮箱大师登录
  • 网站一直没有收录精美企业网站
  • 全球最大的网站建设外包网小说网站开发 项目计划书
  • 乌克兰网站后缀o2o网站建设计划书
  • 深圳市建设注册执业资格中心网站建立企业网站的详细步骤
  • 网站域名备案变更郑州专门做网站的公司有哪些
  • 网站页脚写什么网页制作专业搜题
  • 北京办公用品网站建设济南网站建设公司电子商务网站
  • 长沙银行网站建设长沙县建设局网站
  • 网站建设公司的市场开拓方案一个网站的建设需要什么手续费