做3ds磁铁卡网站一年网站维护

张小明 2026/1/3 7:42:23
做3ds磁铁卡网站,一年网站维护,爱站之家,英语网站都可以做哪些内容1.并行循环基本语法 2.并行循环原理 3.并行循环中的异常处理 4.停止 5.中断1.并行循环基本语法 C#中的Parallel类(位于 System.Threading.Tasks 命名空间)是.NET提供的并行编程核心工具, 旨在简化数据并行和 任务并行开发, 充分利用多核CPU资源, 避免手…1.并行循环基本语法2.并行循环原理3.并行循环中的异常处理4.停止5.中断1.并行循环基本语法C#中的Parallel类(位于 System.Threading.Tasks 命名空间)是.NET提供的并行编程核心工具,旨在简化数据并行和任务并行开发,充分利用多核CPU资源,避免手动管理线程的复杂度;它的核心目标是将串行执行的任务(如循环、独立方 法)自动拆分为多个并行任务, 复用线程池线程执行,提升CPU密集型任务的效率1).Parallel.For:并行版for循环 替代传统的串行for循环,将循环迭代拆分为多个并行任务执行,适合遍历连续整数范围的场景usingSystem;usingSystem.Threading.Tasks;classParallelForDemo{staticvoidMain(){int[]datanewint[10000];// 初始化数组串行for(inti0;idata.Length;i)data[i]i;// 并行遍历数组每个元素乘以2CPU密集型Parallel.For(0,data.Length,i{data[i]*2;// 打印线程ID验证并行不同迭代可能在不同线程执行if(i%10000)Console.WriteLine($迭代{i}线程ID:{System.Threading.Thread.CurrentThread.ManagedThreadId});});Console.WriteLine($第一个元素:{data[0]}, 最后一个元素:{data[9999]});}}2).Parallel.Foreach:并行版foreach替代传统的串行foreach,遍历实现了IEnumerable的集合(如 List、数组、Dictionary),适合遍历非连续集合的场景usingSystem;usingSystem.Collections.Generic;usingSystem.Threading.Tasks;classParallelForEachDemo{staticvoidMain(){ListstringfruitsnewListstring{Apple,Banana,Orange,Grape,Mango};// 并行遍历集合处理每个元素Parallel.ForEach(fruits,fruit{stringupperFruitfruit.ToUpper();Console.WriteLine($处理结果:{upperFruit}(线程ID:{System.Threading.Thread.CurrentThread.ManagedThreadId}));});}}3).Parallel.Invoke:并行执行多个独立的任务 用于一次性执行多个无返回值、无参数的独立方法,适合多任务并行执行场景usingSystem;usingSystem.Threading.Tasks;classParallelDemo{staticvoidMain(){// 并行执行两个独立方法无需关注执行顺序Parallel.Invoke(()CalculateSum(1,1000000),// 任务1计算1到100万的和()PrintMessage(Hello Parallel)// 任务2打印信息);Console.WriteLine(所有并行任务执行完成);}staticvoidCalculateSum(intstart,intend){longsum0;for(intistart;iend;i)sumi;Console.WriteLine($Sum:{sum}(线程ID:{System.Threading.Thread.CurrentThread.ManagedThreadId}));}staticvoidPrintMessage(stringmsg){Console.WriteLine(${msg}(线程ID:{System.Threading.Thread.CurrentThread.ManagedThreadId}));}}2.并行循环原理并行循环的原理是分块减少调度开销和线程复用避免创建成本a.数据分区(分块)—— 不是均分,而是动态按需分块并行循环首先会将待处理的数据集(比如0~999的迭代、List集合)拆分为若干分区(Chunk),但不是静态均分,而是由.NET 的分区器(Partitioner)动态调整-静态分区(适用于迭代执行时间均匀的场景)启动前将数据均分(比如1000个迭代,4核CPU拆成4块,每块250个),优点是分区开销小,缺点是如果某块迭代执行慢(比如 处理大数据),会导致有的线程闲、有的线程忙(负载不均)-动态分区(Parallel默认策略)不提前均分,而是按需分配小批次(比如每次分配10~20个迭代为一个小块),线程处理完当前小块后,立刻去领取下一 个小块,直到所有数据处理完 ✅优势:解决负载不均问题(比如某块迭代执行慢,其他线程不会等,继续领新块),最大化CPU利用率 b.线程调度 —— 复用线程池,而非创建新线程 Parallel循环不会为每个块创建新线程,而是复用.NET线程池(ThreadPool)的工作线程 线程池默认有最小线程数( CPU 核心数)和最大线程数(默认 1023),Parallel会向线程池请求线程,而非手动创建(避 免线程创建/销毁的昂贵开销)并行度(同时运行的线程数)默认由.NET根据CPU核心数、当前系统负载动态调整c.执行与线程复用 —— 一个线程处理多个块 线程与块不是一一绑定,一个线程处理完一个小块后,不会销毁,而是立刻从分区器领取下一个小块继续执行;直到所有小块 处理完毕,线程才会回到线程池,等待后续复用 d.收尾 —— 合并结果(如有)处理异常-若有共享结果(比如累加求和),需通过原子操作/锁-若多个块抛出异常,会封装为AggregateException统一抛出3.并行循环中的异常处理并行循环中的异常不会立即停止本次迭代,而是停止新的迭代;将trycatch放在并行循环的外面usingSystem;usingSystem.Threading.Tasks;classParallelExceptionBasic{staticvoidMain(){try{// 并行循环迭代1和3抛出不同异常Parallel.For(0,5,i{Console.WriteLine($迭代{i}开始执行);if(i1)thrownewArgumentException($参数非法迭代{i});// 业务异常1if(i3)thrownewDivideByZeroException($除零错误迭代{i});// 业务异常2Thread.Sleep(100);// 模拟业务逻辑});}// 必须捕获AggregateException而非单个异常catch(AggregateExceptionaggregateEx){Console.WriteLine($捕获到{aggregateEx.InnerExceptions.Count}个异常);// 遍历所有内部异常逐个处理foreach(varinnerExinaggregateEx.InnerExceptions){// 区分异常类型针对性处理switch(innerEx){caseArgumentExceptionargEx:Console.WriteLine($参数异常{argEx.Message});break;caseDivideByZeroExceptiondivEx:Console.WriteLine($除零异常{divEx.Message});break;default:Console.WriteLine($未知异常{innerEx.Message});break;}}}// 可选捕获其他非并行循环的异常比如参数错误catch(Exceptionex){Console.WriteLine($非聚合异常{ex.Message});}}}4.停止Stop是紧急停止—— 不管索引顺序,新迭代全不调度,已开始的迭代也建议尽快退出(而非执行完)usingSystem;usingSystem.Threading.Tasks;classParallelBreakVsStop{staticvoidMain(){Console.WriteLine( 测试 Stop() );varresultParallel.For(0,10,(i,state){Console.WriteLine($[{DateTime.Now:HH:mm:ss.fff}] 迭代{i}开始执行);if(i5){Console.WriteLine($[{DateTime.Now:HH:mm:ss.fff}] 触发 Stop());state.Stop();}// 关键检查IsStopped尽快退出Stop的核心if(state.IsStopped){Console.WriteLine($[{DateTime.Now:HH:mm:ss.fff}] 迭代{i}检测到Stop立即退出);return;// 不执行后续的500ms延迟}// 若没检测IsStopped才会执行完500ms这是你觉得没区别的常见原因Task.Delay(500).Wait();Console.WriteLine($[{DateTime.Now:HH:mm:ss.fff}] 迭代{i}执行完成);});Console.WriteLine($循环是否完成{result.IsCompleted});Console.WriteLine($最低中断迭代索引{result.LowestBreakIteration??-1}\n);}}5.中断Break是有序中断—— 保证中断点前的迭代全执行完,只停后面的usingSystem;usingSystem.Threading.Tasks;classParallelBreakVsStop{staticvoidMain(){Console.WriteLine( 测试 Break() );varresultParallel.For(0,10,(i,state){Console.WriteLine($[{DateTime.Now:HH:mm:ss.fff}] 迭代{i}开始执行);if(i5){Console.WriteLine($[{DateTime.Now:HH:mm:ss.fff}] 触发 Break());state.Break();}// 模拟耗时500ms的业务逻辑Break下会执行完Task.Delay(500).Wait();Console.WriteLine($[{DateTime.Now:HH:mm:ss.fff}] 迭代{i}执行完成);});Console.WriteLine($循环是否完成{result.IsCompleted});Console.WriteLine($最低中断迭代索引{result.LowestBreakIteration}\n);}}
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

w3c验证网站wordpress修改最大32m

TrollRestore终极指南:iOS设备系统应用安全替换解决方案 【免费下载链接】TrollRestore TrollStore installer for iOS 17.0 项目地址: https://gitcode.com/gh_mirrors/tr/TrollRestore TrollRestore是一款专为iOS设备设计的革命性工具,能够帮助…

张小明 2026/1/2 2:33:20 网站建设

网站建设 大公司新媒体代运营

AGV系统核心架构与智能物流演进路径 在现代制造工厂的车间里,你可能会注意到这样一幕:没有司机驾驶,也没有轨道约束,一辆辆低矮灵活的小车沿着地面安静穿行,精准地将物料送至指定工位,完成任务后自动返回充…

张小明 2026/1/2 2:33:22 网站建设

泉州网站建设公司招聘销售网站建设咨询电话

Venera漫画阅读器为你提供了强大的数字漫画管理功能,无论你是漫画收藏爱好者还是日常读者,都能轻松实现高效导入和智能管理。本文将为你详细解析从准备到优化的完整流程。 【免费下载链接】venera A comic app 项目地址: https://gitcode.com/gh_mirro…

张小明 2026/1/1 21:40:32 网站建设

网站建设技术网站wordpress默认首页

为什么选择PyTorch作为深度学习框架?优势全面分析 在当今AI研发一线,一个再常见不过的场景是:研究员凌晨两点还在调试模型,突然发现训练脚本报错“CUDA out of memory”——不是因为代码逻辑有误,而是环境配置出了问题…

张小明 2026/1/2 2:33:22 网站建设

有哪些好的做网站东莞建设建网站

5大核心模块深度解析:Typora插件如何彻底改变你的Markdown写作体验 【免费下载链接】typora_plugin Typora plugin. feature enhancement tool | Typora 插件,功能增强工具 项目地址: https://gitcode.com/gh_mirrors/ty/typora_plugin 还在为Typ…

张小明 2026/1/1 21:37:30 网站建设

网站优化入门免费教程用asp.net做网站

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个新手友好的Linux命令学习助手,功能要求:1) 可视化展示20个最常用命令(grep, awk等) 2) 每个命令提供动画演示 3) 交互式练习题 4) 错题提示功能。界…

张小明 2026/1/2 2:33:23 网站建设