c#并行编程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#并行编程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1716字,纯文字阅读大概需要3分钟。
内容图文
![c#并行编程](/upload/InfoBanner/zyjiaocheng/741/2be3ef4e7207453bac320cc7509aba37.jpg)
第二章 命令式数据并行
几种并行类型:
数据并行
任务并行
流水线
在System.threading.tasks.parallel下
parallel.for
parallel.foreach(可以自定义parytitioner)
parallel.invoke
1. Parallel.Invoke
没有特定执行顺序
交错并发:逻辑内核通过时间片机制和快速上下文切换实现并行的假象
并发:不解释
热点:潜在的可并行代码
加速比:串行执行时间/并行执行时间
2. Parallel.for
每一次迭代一会当作一个任务交给一个线程
迭代范围上界判断是小于,所以需要加一
3. Parallel.ForEach
可以通过partitioner分区器进行分区,每一个迭代处理一个分区,Tuple<int,int>
退出
ParallelLoopState
Break: 不会马上结束,执行完小于当前迭代的内容
Stop:尽快退出
ParallelLoopResult
IsCompleted 循环完成
!IsCompleted && !LowestBreakIteration.HasValue Stop终止
!IsCompleted && LowestBreakIteration.HasValue Break终止
AggregateException
.InnerExceptions内部异常集合
parallelOptions
maxDegreeoOfParallelism并行度
CancellationToken取消token
taskScheduler任务调度器
第三章 命令式并行任务并行
System.Threading.Tasks.Task
一个task代表一个异步操作,并不针对一个线程
状态
TaskStatus.Created初始状态
.WaitingForActivation依赖其他任务的任务的初始状态
.WaitingToRun通过TaskFactory.StartNew所创建的任务的初始状态
.Cancelled
.Faulted
.RunToCompletion
task.Start()
task.Wait() 等待也都有超时的重载
Task.WaitAll()
Task.TaskFactory.StartNew方法可以参数传入cancellationToken,或者TaskCreationOptions
TaskCreationOption
.AttachedToParent与一个父任务关联
.None默认行为
.LongRunning长时间操作,调度器可对其用粗颗粒度的操作,一般大于一秒
.PreferFairness告诉调度器,更早被调度的任务更早执行
task.ContinueWith延续任务
TaskContinuationOptions操作或者条件
转载于:https://www.cnblogs.com/DexterDi/p/4185968.html
内容总结
以上是互联网集市为您收集整理的c#并行编程全部内容,希望文章能够帮你解决c#并行编程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。