读书频道 > 网站 > 网页设计 > C#并行编程高级教程:精通.NET 4 Parallel Extension
目录
12-07-08    叶孤城
收藏    我要投稿   
本书旨在帮助有经验的C#开发人员能够利用.NET Framework 4中引入的Parallel Extensions,将现代微处理器中的多核处理能力转换为应用程序的性能。无论您是刚刚开始从老的多线程模型开始转换,还是已经有过一些...立即去当当网订购
第1章 基于任务的程序设计
 1.1 使用共享内存的多核系统
 1.1.1共享内存多核系统与分布式内存系统之间的区别
 1.1.2并行程序设计和多核程序设计
 1.2 理解硬件线程和软件线程
 1.3 理解amdahl法则
 1.4 考虑gustafson法则
 1.5 使用轻量级并发模型
 1.6 创建成功的基于任务的设计
 1.6.1以并发的思想指导设计
 1.6.2理解交错并发、并发和并行之间的区别
 1.6.3并行化任务
 1.6.4尽量减少临界区
 1.6.5理解多核并行程序的设计原则
 1.7 为numa架构和更高的可扩展性做好准备
 1.8 判断是否适合并行化
 1.9 小结
第2章 命令式数据并行
 2.1 加载并行任务  
 2.1.1system.threading.tasks.parallel类
 2.1.2 parallel.invoke
 2.2 将串行代码转换为并行代码
 2.2.1检测可并行化的热点
 2.2.2测量并行执行的加速效果
 2.2.3理解并发执行
 2.3 循环并行化
 2.3.1 parallel.for
 2.3.2 parallel.foreach
 2.3.3从并行循环中退出
 2.4 指定并行度
 2.4.1 paralleloptions
 2.4.2计算硬件线程
 2.4.3逻辑内核并不是物理内核
 2.5 通过甘特图检测临界区
 2.6 小结
第3章 命令式任务并行
 3.1 创建和管理任务
 3.1.1system.threading.tasks.task
 3.1.2理解task状态和生命周期
 3.1.3通过使用任务来对代码进行并行化
 3.1.4等待任务完成
 3.1.5忘记复杂的线程
 3.1.6通过取消标记取消任务
 3.1.7从任务返回值
 3.1.8taskcreationoptions
 3.1.9通过延续串联多个任务
 3.1.10编写适应并发和并行的代码
 3.2 小结
第4章 并发集合
 4.1 理解并发集合提供的功能
 4.1.1system.collections.concurrent
 4.1.2concurrentqueue
 4.1.3理解并行的生产者-消费者模式
 4.1.4concurrentstack
 4.1.5将使用数组和不安全集合的代码转换为使用并发集合的代码
 4.1.6concurrentbag
 4.1.7iproducerconsumer
 collection
 4.1.8blockingcollection
 4.1.9concurrentdictionary
 4.2 小结
第5章 协调数据结构
 5.1 通过汽车和车道理解并发难题
 5.1.1非预期的副作用
 5.1.2竞争条件
 5.1.3死锁
 5.1.4使用原子操作的无锁算法
 5.1.5使用本地存储的无锁算法
 5.2 理解新的同步机制
 5.3 使用同步原语
 5.3.1通过屏障同步并发任务
 5.3.2屏障和continuewhenall
 5.3.3在所有的参与者任务中捕捉异常
 5.3.4使用超时
 5.3.5使用动态数目的参与者
 5.4 使用互斥锁
 5.4.1使用monitor
 5.4.2使用锁超时
 5.4.3将代码重构为避免使用锁
 5.5 将自旋锁用作互斥锁原语
 5.5.1使用超时
 5.5.2使用基于自旋的等待
 5.5.3自旋和处理器出让
 5.5.4使用volatile修饰符
 5.6 使用轻量级的手动重置事件
 5.6.1使用manualreseteventslim进行自旋和等待
 5.6.2使用超时和取消
 5.6.3使用manualresetevent
 5.7 限制资源的并发访问
 5.7.1使用semaphoreslim
 5.7.2使用超时和取消
 5.7.3使用semaphore
 5.8 通过countdownevent简化动态fork和join场景
 5.9 使用原子操作
 5.10 小结
第6章plinq:声明式数据并行
 6.1 从linq转换到plinq
 6.1.1 parallelenumerable及其asparallel方法
 6.1.2 asordered和orderby子句
 6.2 指定执行模式
 6.3 理解plinq中的数据分区
 6.4 通过plinq执行归约操作
 6.5 创建自定义的plinq聚合函数
 6.6 并发plinq任务
 6.7 取消plinq
 6.8 指定所需的并行度
 6.8.1withdegreeofparallelism
 6.8.2测量可扩展性
 6.9 使用forall
 6.9.1foreach和forall的区别
 6.9.2测量可扩展性
 6.10 通过withmergeoptions配置返回结果的方式
 6.11 处理plinq抛出的异常
 6.12 使用plinq执行mapreduce算法
 6.13 使用plinq设计串行多步操作
 6.14 小结
第7章visual studio 2010的任务调试能力
 7.1 充分利用多显示器的支持
 7.2 理解并行任务调试器窗口
 7.3 查看parallel stacks图
 7.4 跟踪并发代码
 7.4.1调试匿名方法
 7.4.2查看方法
 7.4.3在源代码中查看线程
 7.5 检测死锁
 7.6 小结
第8章 线程池
 8.1 探究任务的底层技术
 8.2 理解新的clr 4线程池引擎
 8.2.1理解全局队列
 8.2.2等待工作线程完成工作
 8.2.3跟踪动态数目的工作线程
 8.2.4使用任务(而不是线程)将作业加入队列
 8.2.5理解任务和线程池之间的关系
 8.2.6理解局部队列和工作窃取算法
 8.2.7指定自定义的任务调度器
 8.3 小结
第9章 异步编程模型
 9.1 结合使用异步编程和任务
 9.1.1使用taskfactory.fromasync
 9.1.2编写异步方法执行结束之后的延续
 9.1.3合并多个并发异步操作的结果
 9.1.4执行异步wpf ui更新
 9.1.5执行异步windows forms ui更新
 9.1.6创建执行eap操作的任务
 9.1.7使用taskcompletionsource
 9.2 小结
第10章 并行测试和调优
 10.1 准备并行测试
 10.1.1使用性能剖析功能
 10.1.2测量并发性
 10.2 常见问题模式的解决方案
 10.2.1串行化的执行
 10.2.2锁争用
 10.2.3锁封护
 10.2.4申请超额
 10.2.5申请不足
 10.2.6分区问题
 10.2.7工作站垃圾回收开销
 10.2.8使用服务器垃圾回收
 10.2.9i/o瓶颈
 10.2.10主线程过载
 10.3 理解伪共享
 10.4 小结
第11章 向量化、simd指令以及其他并行库
 11.1 理解simd和向量化
 11.2 从mmx到sse4.x和avx
 11.3 使用intel math kernellibrary
 11.3.1使用适用于多核的高度优化的软件函数
 11.3.2将基于任务的编程和外部优化的库混合使用
 11.3.3并行生成伪随机数
 11.4 使用intel integratedperformance primitives
 11.5 小结
附录a .net 4中与并行相关的类图
附录b 并发uml模型
附录c parallel extensions extras
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站