文轩网图书旗舰店
  • 扫码下单

  • .NET并发编程实战 (美)里卡尔多·特雷尔(Riccardo Terrell) 著 叶伟民 译 专业科技 文轩网
  • 新华书店正版
    • 作者: (美)里卡尔多·特雷尔(Riccardo Terrell)著 | | 叶伟民译
    • 出版社: 清华大学出版社
    • 出版时间:2020-05-01 00:00:00
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    店铺装修中

    商家:
    文轩网图书旗舰店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    文轩网图书旗舰店

  •      https://product.suning.com/0070067633/11555288247.html

     

    商品参数
    • 作者: (美)里卡尔多·特雷尔(Riccardo Terrell)著| 叶伟民译
    • 出版社:清华大学出版社
    • 出版时间:2020-05-01 00:00:00
    • 版次:1
    • 印次:1
    • 印刷时间:2020-05-01
    • 字数:632000
    • 页数:538
    • 开本:16开
    • 装帧:平装
    • ISBN:9787302549598
    • 国别/地区:中国
    • 版权提供:清华大学出版社

    .NET并发编程实战

    作  者:(美)里卡尔多·特雷尔(Riccardo Terrell) 著 叶伟民 译
    定  价:128
    出 版 社:清华大学出版社
    出版日期:2020年05月01日
    页  数:538
    装  帧:平装
    ISBN:9787302549598
    主编推荐

    "要充分释放你的多处理器计算机的很好性能,这样并发应用程序会运行得更快,因为它们跨处理器内核分散工作,同时执行多个任务。.NET平台上的现代化工具和技术(包括并行 LINQ、函数式编程、异步编程和任务并行库)十分强大,替代了传统的基于线程的并发解决方案。     《.NET并发编程实战》一书将教你编写代码以提供性能敏感型应用程序所需的速度。本书以 C# 和 F# 中的示例指导你完成在理论和实践上强调函数式编程的并发和并行设计。你将从并发的基础开始,掌握基本技术和设计实践,以优化在现代多处理器系统上运行的代码。"

    内容简介

    要充分释放你的多处理器计算机的很好性能,这样并发应用程序会运行得更快,因为它们跨处理器内核分散工作,同时执行多个任务。.NET平台上的现代化工具和技术(包括并行LINQ、函数式编程、异步编程和任务并行库)十分强大,替代了传统的基于线程的并发解决方案。
    《.NET并发编程实战》一书将教你编写代码以提供性能敏感型应用程序所需的速度。本书以C#和F#中的示例指导你完成在理论和实践上强调函数式编程的并发和并行设计。你将从并发的基础开始,掌握基本技术和设计实践,以优化在现代多处理器系统上运行的代码。

    作者简介

    "Riccardo Terrell是一位经验丰富的软件工程师和微软 MVP,他热衷于函数式编程。Riccardo在竞争激烈的商业环境中提供具有高商业价值的技术解决方案方面拥有超过20年的经验。 1998年,Riccardo在意大利创办了自己的软件公司,专门为客户提供定制的医疗软件。2007年,Riccardo移居美国,此后一直担任. NET高级软件开发人员和高级软件架构师,在业务环境中提供经济高效的技术解决方案。Riccardo致力于集成优选技术工具,以让组织内部沟通更高效,提高工作效率并降低运营成本。 他积极参与函数式编程社区,包括.NET会议和国际会议并广为人知。Riccardo相信多种范式混合编程是能够优选限度地发挥代码力量的一种机制。 叶伟民 广州.NET技术俱乐部主席、中国香港Azure/.NET技术俱乐部创始人兼主席、.NET社区联盟建设者,在.NET编程领域有null

    精彩内容

    目录
    第Ⅰ部分函数式编程在并发程序中所体现的优势
    第1章函数式并发基础3
    1.1你将从本书中学到什么4
    1.2让我们从术语开始5
    1.2.1顺序编程——一次执行一个任务6
    1.2.2并发编程——同时运行多个任务7
    1.2.3并行编程——同时执行多个任务8
    1.2.4多任务处理——同时在一段时间内执行多个任务9
    1.2.5多线程性能调优10
    1.3为什么需要并发11
    1.4并发编程的陷阱14
    1.4.1并发的危害14
    1.4.2共享状态的演变17
    1.4.3一个简单的真实示例:并行快速排序17
    1.4.4F#中的基准测试21
    1.5为什么选择函数式编程实现并发21
    1.6拥抱函数式范式24
    1.7为什么选择F#和C#进行函数式并发编程25
    1.8本章小结27
    第2章并发函数式编程技术29
    2.1使用函数组合解决复杂的问题30
    2.1.1C#的函数组合30
    2.1.2F#的函数组合32
    2.2闭包简化函数式思考33
    2.2.1使用lambda表达式捕获闭包中的变量34
    2.2.2多线程环境中的闭包36
    2.3用于程序加速的记忆化缓存技术38
    2.4记忆快速网络爬虫的操作42
    2.5延迟记忆化以获得更好的性能46
    2.6有效率的并行推测以摊销昂贵计算成本47
    2.6.1具有天然函数支持的预计算50
    2.6.2使很好计算获胜51
    2.7延迟是件好事情52
    2.7.1对严格求值语言并发行为的理解52
    2.7.2延迟缓存技术和线程安全的单例模式54
    2.7.3F#中的延迟支持55
    2.7.4延迟和任务,一个强大的组合55
    2.8本章小结57
    第3章函数式数据结构和不可变性59
    3.1真实世界的例子:捕猎线程不安全的对象60
    3.1.1.NET不可变集合:一种安全的解决方案63
    3.1.2.NET并发集合:更快的解决方案67
    3.1.3代理消息传递模式:更快、更好的解决方案69
    3.2在线程之间安全地共享函数式数据结构72
    3.3修改的不可变性73
    3.3.1数据并行的函数式数据结构75
    3.3.2使用不可变性的性能影响75
    3.3.3C#的不可变性76
    3.3.4F#的不可变性79
    3.3.5函数式列表:连接一条链中的单元格80
    3.3.6构建可持久化数据结构:不可变二叉树86
    3.4递归函数:一种自然的迭代方式89
    3.4.1正确递归函数尾部:尾部调用优化90
    3.4.2延续传递风格以优化递归函数91
    3.5本章小结95
    第Ⅱ部分如何处理并发程序的不同部分
    第4章处理大数据的基础:数据并行,第1部分99
    4.1什么是数据并行100
    4.1.1数据和任务并行101
    4.1.2“尴尬并行”概念102
    4.1.3.NET中的数据并行支持102
    4.2Fork/Join模式:并行Mandelbrot103
    4.2.1当GC是瓶颈时:结构与类对象109
    4.2.2并行循环的缺点111
    4.3测量性能速度111
    4.3.1Amdahl定律定义了性能改进的极限112
    4.3.2Gustafson定律:进一步衡量性能改进113
    4.3.3并行循环的局限性:素数之和113
    4.3.4简单循环可能会出现什么问题115
    4.3.5声明式并行编程模型117
    4.4本章小结118
    第5章PLINQ和MapReduce:数据并行,第2部分121
    5.1PLINQ简介122
    5.1.1PLINQ如何更具函数式123
    5.1.2PLINQ和纯函数:并行字计数器123
    5.1.3使用纯函数避免副作用125
    5.1.4隔离和控制副作用:重构并行字计数器127
    5.2并行聚合和归约数据128
    5.2.1择伐(Deforesting):折叠的诸多优点之一130
    5.2.2PLINQ中的fold:Aggregate函数131
    5.2.3为PLINQ实现并行Reduce函数137
    5.2.4F#的并行列表解析:PSeq139
    5.2.5F#的并行数组140
    5.3并行MapReduce模式142
    5.3.1Map和Reduce函数143
    5.3.2在NuGet包库中使用MapReduce144
    5.4本章小结149
    第6章实时事件流:函数式反应式编程151
    6.1反应式编程:大事件处理152
    6.2用于反应式编程的.NET工具155
    6.2.1事件组合器——更好的解决方案156
    6.2.2.NET与F#组合器的互操作性157
    6.3.NET中的反应式编程:反应式扩展(Rx)160
    6.3.1从LINQ/PLINQ到Rx162
    6.3.2IObservable:对偶IEnumerable163
    6.3.3Action中的反应式扩展164
    6.3.4Rx实时流165
    6.3.5从事件到F#Observable166
    6.4驯服事件流:使用Rx编程进行Twitter情绪分析167
    6.5Rx发布者-订阅者176
    6.5.1为强大的发布者-订阅者集线器使用Subject类型176
    6.5.2与并发相关的Rx177
    6.5.3实现可重用的Rx发布者-订阅者178
    6.5.4使用RxPub-Sub类分析推文情绪180
    6.5.5action中的观察者183
    6.5.6方便的F#对象表达式184
    6.6本章小结184
    第7章基于任务的函数式并行187
    7.1任务并行的简短介绍188
    7.1.1为什么要进行任务并行和函数式编程189
    7.1.2.NET中的任务并行化支持189
    7.2.NET任务并行库191
    7.3C#void的问题196
    7.4延续传递风格(CPS):函数式控制流程198
    7.4.1为什么要利用CPS199
    7.4.2等待任务完成:延续模型200
    7.5组合任务操作的策略205
    7.5.1使用数学模式以获得更好的组合207
    7.5.2任务使用准则212
    7.6并行函数式管道模式212
    7.7本章小结218
    第8章最终胜出的任务异步模型219
    8.1异步编程模型(APM)220
    8.1.1异步编程的价值220
    8.1.2可扩展性和异步编程223
    8.1.3CPU密集型和I/O密集型操作223
    8.2异步编程不受的并行度224
    8.3.NET的异步支持225
    8.3.1异步编程会破坏代码结构228
    8.3.2基于事件的异步编程228
    8.4C#基于任务的异步编程229
    8.4.1匿名异步lambda232
    8.4.2Task是一个monadic容器232
    8.5基于任务的异步编程:案例研究235
    8.5.1异步取消240
    8.5.2带有monadicBind运算符的基于任务的异步组合244
    8.5.3延迟异步计算以实现组合245
    8.5.4如果出现问题,请重试246
    8.5.5异步操作的错误处理247
    8.5.6股票市场历史的异步并行处理249
    8.5.7任务完成后的异步股票市场并行处理251
    8.6本章小结252
    第9章F#的异步函数编程253
    9.1异步函数式方面254
    9.2什么是F#异步工作流254
    9.2.1计算表达式中的延续传递风格254
    9.2.2异步工作流操作:AzureBlob存储并行操作257
    9.3异步计算表达式261
    9.3.1计算表达式和单子之间的区别263
    9.3.2异步重试:生成自己的计算表达式264
    9.3.3扩展异步工作流266
    9.3.4映射异步操作:Async.map函子267
    9.3.5并行化异步工作流:Async.Parallel269
    9.3.6异步工作流取消支持274
    9.3.7驯服并行异步操作276
    9.4本章小结280
    第10章用于流畅式并发编程的函数式组合器281
    10.1执行流并不总是处于正常情况:错误处理282
    10.2错误组合器:C#中的Retry、Otherwise和Task.Catch285
    10.2.1FP中的错误处理:流控制的异常289
    10.2.2在C#中使用Task>处理错误291
    10.2.3F#AsyncOption类型:组合Async和Option291
    10.2.4F#惯用的函数式异步错误处理292
    10.2.5使用Result类型保留异常语义294
    10.3在异步操作中控制异常298
    10.3.1F#使用Async和Result建模错误处理302
    10.3.2使用monadic运算符bind扩展F#AsyncResult类型304
    10.4使用函数式组合器抽象化操作308
    10.5函数式组合器概要309
    10.5.1TPL内置异步组合器310
    10.5.2利用Task.WhenAny组合器实现冗余和交叉311
    10.5.3使用Task.WhenAll组合器进行异步for-each312
    10.5.4回顾迄今看到的数学模式314
    10.6最终的并行组合应用函子317
    10.6.1使用应用函子运算符扩展F#异步工作流324
    10.6.2带有中缀运算符的F#应用函子语义326
    10.6.3利用应用函子实现异构并行计算326
    10.6.4组合和执行异构并行计算328
    10.6.5使用条件异步组合器控制流330
    10.6.6运用异步组合器334
    10.7本章小结336
    第11章使用代理应用反应式编程339
    11.1什么是反应式编程340
    11.2异步消息传递编程模型342
    11.2.1消息传递和不可变性的关系344
    11.2.2天然隔离344
    11.3代理是什么345
    11.3.1代理的组件346
    11.3.2代理可以做什么347
    11.3.3无锁并发编程的无共享方法347
    11.3.4基于代理的编程如何体现函数式思想348
    11.3.5代理是面向对象的349
    11.4F#代理:MailboxProcessor349
    11.5使用F#MailboxProcessor避免数据库瓶颈352
    11.5.1MailboxProcessor消息类型:可区分联合355
    11.5.2MailboxProcessor双向通信356
    11.5.3在C#中使用AgentSQL357
    11.5.4成组协调代理来并行工作流358
    11.5.5如何使用F#MailboxProcessor处理错误360
    11.5.6停止MailboxProcessor代理——CancellationToken361
    11.5.7使用MailboxProcessor分发工作362
    11.5.8使用代理缓存操作364
    11.5.9由MailboxProcessor报告结果368
    11.5.10使用线程池报告来自MailboxProcessor的事件371
    11.6F#MailboxProcessor:10000个代理的生命游戏371
    11.7本章小结376
    第12章使用TPLDataflow的并行工作流与代理编程379
    12.1TPLDataflow的强大性380
    12.2组合式设计:TPLDataflow块381
    12.2.1使用BufferBlock作为FIFO缓冲区382
    12.2.2使用TransformBlock转换数据383
    12.2.3使用ActionBlock完成工作384
    12.2.4连接数据流块385
    12.3使用TDF实现复杂的生产者/消费者386
    12.3.1多生产者/单消费者模式386
    12.3.2单生产者/多消费者模式387
    12.4使用TPLDataflow在C#中启用代理模型388
    12.4.1代理折叠状态和消息:聚合392
    12.4.2代理交互:并行单词计数器392
    12.5压缩和加密大型流的并行工作流397
    12.5.1上下文:处理大型数据流的问题397
    12.5.2确保消息流的顺序完整性402
    12.5.3连接、传播和完成403
    12.5.4构建TDF工作流的规则405
    12.5.5组合ReactiveExtensions(Rx)和TDF406
    12.6本章小结407
    第Ⅲ部分现代并发编程模式应用
    第13章成功的并发编程的配方和设计模式411
    13.1循环利用对象以减少内存消耗412
    13.2自定义并行Fork/Join运算符415
    13.3并行具有依赖关系的任务:设计代码以优化性能418
    13.4用于协调并发I/O操作共享资源的闸门:一次写入,多次读取423
    13.5线程安全的随机数生成器430
    13.6多态事件聚合器432
    13.7自定义Rx调度程序来控制并行度435
    13.8并发的反应式可扩展客户端/服务器438
    13.9可复用的自定义高性能并行filter-map运算符448
    13.10无阻塞同步消息传递模型452
    13.11使用代理编程模型协调并发作业457
    13.12组合monadic函数462
    13.13本章小结465
    第14章使用并发函数式编程构建可扩展的移动应用程序467
    14.1现实世界服务器上的函数式编程468
    14.2如何设计一个成功的高性能应用程序469
    14.2.1秘制酱:ACD470
    14.2.2不同的异步模式:将工作排队以稍后执行470
    14.3选择正确的并发编程模型472
    14.4实时交易:股票市场示例的高层架构475
    14.5股票市场应用程序的基本要素479
    14.6编写股票市场交易应用程序479
    14.7本章小结501
    附录A函数式编程503
    附录BF#概述517
    附录CF#异步工作流和.NETTask之间的互操作性535

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购