标签分类 热门分类
当前位置:首页 > 程序设计电子书 > Scala编程电子书网盘下载
Scala并发编程 Scala并发编程
broadview2006

broadview2006 提供上传

资源
25
粉丝
40
喜欢
226
评论
4

    Scala并发编程 PDF 高清版

    Scala编程电子书
    • 发布时间:

    给大家带来的一篇关于Scala编程相关的电子书资源,介绍了关于Scala、并发编程方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小155.3 MB,普罗科佩茨( Prokopec,A.),编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.3,更多相关的学习资源可以参阅 程序设计电子书、等栏目。

  • Scala并发编程 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1AW8FG4ribjPX_zDdwwDMR
  • 分享码:r275
  • Scala并发编程 pdf

    免费的性能午餐已经结束——Intel、AMD 和Sparc、PowerPC 等主要的处理器生产厂商,从前使用的提高CPU 性能的传统方法已经走到尽头,单核处理器的主频多年来一直踏步不前,当今主流的CPU 制造技术是超线程和多核架构。面对计算机性能的挑战和硬件架构的改变,迷惘的软件开发者们应何去何从?《Scala并发编程》为大家展示了一条光明的康庄大道!

    《Scala并发编程》由Scala 语言的发明者,瑞士洛桑联邦理工大学教授Martin Odersky 的爱徒Aleksandar Prokopec 博士撰写。作者根据自己在Scala 语言开发团队中的工作经验,全面地介绍了并发编程技术。这些并发编程技术包括:并发程序设计的基础知识和背景知识、常用并发实用组件(如线程池、原子变量和并发集合)的用法、Scala 专用并发框架(Future 和Promise API)的用法、Scala 并行集合框架的用法、使用响应式扩展框架编写基于事件的程序和异步程序的方式、用于编写事务程序的ScalaSTM 库以及Actor 编程模型和Akka框架。

    作者在《Scala并发编程》中列举的实例既介绍了理论知识又展示了实践方法,同时还能够开拓读者的编程思路。此外,作者还在每章末尾提供了大量编程习题,帮助读者测试和巩固知识。

    目录

    • 1 简介 . 1
    • 并发程序设计 1
    • 传统并发编程技术概述 . 2
    • 现代并发范式 3
    • Scala 的优点 . 4
    • 预备知识 . 5
    • 执行Scala 程序 . 5
    • Scala 基础知识 6
    • 小结 11
    • 练习 11
    • 2 JVM 和Java 内存模型中的并发处理方式 13
    • 进程和线程 14
    • 创建和启动线程 16
    • 原子执行方式 .21
    • 调整次序 25
    • 监控器和同步 . 27
    • 死锁 .29
    • 保卫锁 32
    • 中断线程和正常关闭 .36
    • Volatile 变量 37
    • Java 内存模型 39
    • 不可变对象和final 字段 .41
    • 小结 . 43
    • 练习 . 43
    • 3 构建并发程序的传统材料 . 47
    • Executor 和ExecutionContext 对象 . 48
    • 原子型基元 52
    • 原子变量 52
    • 无锁编程 55
    • 以明确方式实现锁 .57
    • ABA 问题 .59
    • 惰性值 61
    • 并发集合 . 66
    • 并发队列 .68
    • 并发集和映射 .71
    • 并发遍历 .77
    • 创建和处理进程 79
    • 小结 . 81
    • 练习 . 81
    • 4 使用Future 和Promise 对象编写异步程序 85
    • Future 类 . 86
    • 执行Future 计算88
    • Future 对象的回调函数 89
    • Future 计算和异常 .92
    • 使用Try 类型 .93
    • 致命异常 95
    • Future 对象中的函数组合 95
    • Promise 类 103
    • 转换基于回调函数的API . 106
    • 扩展Future API 108
    • 取消异步计算操作 . 109
    • Future 对象和阻塞操作 . 112
    • 等待Future 对象. 112
    • 在异步计算内部执行阻塞操作 . 113
    • Scala Async 库 114
    • 可选的Future 框架 117
    • 小结 . 118
    • 练习 . 119
    • 5 数据并行集合 . 121
    • Scala 集合概述 122
    • 并行集合的用法 . 123
    • 并行集合类的层次结构 . 126
    • 配置并行等级 128
    • 在JVM 中度量性能 . 129
    • 使用并行集合的注意事项 . 131
    • 非可并行化集合 131
    • 非可并行化操作 132
    • 并行操作的副作用 134
    • 不确定的并行操作 135
    • 可交换和可结合操作符 137
    • 组合使用并行集合和并发集合 139
    • 弱一致性迭代器 140
    • 实现自定义的并行集合 . 141
    • 分离器 142
    • 组合器 . 145
    • 可选的数据并行框架 . 148
    • ScalaBlitz 框架中的集合层次结构 149
    • 小结 . 150
    • 练习 . 151
    • 6 使用Reactive Extensions 编写并发程序 . 153
    • 创建Observable 对象 . 154
    • Observable 对象和异常 157
    • Observable 协定 158
    • 实现自定义Observable 对象 160
    • 通过Future 对象创建Observable 对象 161
    • Subscription 对象 162
    • 组合Observable 对象 165
    • 嵌套的Observable 对象 . 166
    • 处理完善Observable 对象失败的情况 171
    • Rx 调度器 . 174
    • 使用自定义调度器编写UI 应用程序 176
    • Subject 特征和自顶向下的响应式编程 181
    • 小结 186
    • 练习 . 186
    • 7 基于软件的事务内存 189
    • 原子变量带来的麻烦 190
    • 使用基于软件的事务内存 194
    • 事务引用 . 196
    • 使用atomic 语句 197
    • 组合事务 198
    • 事务与副作用 . 199
    • 单操作事务 . 203
    • 嵌套事务 . 205
    • 事务和异常 208
    • 重新尝试执行事务 212
    • 通过超时设置重新尝试执行事务 . 216
    • 事务集合 . 217
    • 事务局部变量 . 218
    • 事务数组 . 219
    • 事务映射 221
    • 小结 . 222
    • 练习 . 223
    • 8 Actor 227
    • 使用Actor 模型 . 228
    • 创建Actor 系统和Actor 实例 . 230
    • 管理无法正常处理的消息 233
    • Actor 实例的行为和状态 234
    • Akka 框架中的Actor 层次结构 239
    • 识别Actor 对象 . 242
    • Actor 对象的生命周期 . 245
    • Actor 对象之间的通信 249
    • 请求模式 251
    • 转发模式 . 254
    • 停止Actor 对象 . 255
    • Actor 监督 257
    • 远程Actor 对象 . 263
    • 小结 266
    • 练习 . 267
    • 9 实用并发技术 . 269
    • 工欲善其事,必先利其器 . 269
    • 组合使用多种框架——编写远程文件管理器 273
    • 创建文件系统模型 274
    • 服务器接口 . 278
    • 客户端导航API 280
    • 客户端的用户界面 . 284
    • 实现客户端程序的逻辑 288
    • 改进远程文件管理器 293
    • 调试并发程序 . 294
    • 死锁和暂停处理过程 . 295
    • 调试运行结果不正确的程序 299
    • 性能调试 . 304
    • 小结 310
    • 练习 311

    上一篇:Hadoop 2.X HDFS源码剖析  下一篇:JavaScript和jQuery实战手册

    展开 +

    收起 -

     
    Scala编程 相关电子书
    关于Scala编程的学习笔记
    网友NO.716385

    浅析Java和Scala中的Future

    随着CPU的核数的增加,异步编程模型在并发领域中的得到了越来越多的应用,由于Scala是一门函数式语言,天然的支持异步编程模型,今天主要来看一下Java和Scala中的Futrue,带你走入异步编程的大门。 Future 很多同学可能会有疑问,Futrue跟异步编程有什么关系?从Future的表面意思是未来,一个Future对象可以看出一个将来得到的结果,这就和异步执行的概念很像,你只管自己去执行,只要将最终的结果传达给我就行,线程不必一直暂停等待结果,可以在具体异步任务执行的时候去执行其他操作,举个例子: async work 我们现在在执行做饭这么一个任务,它需要煮饭,烧菜,摆置餐具等操作,如果我们通过异步这种概念去执行这个任务,比如煮饭可能需要比较久的时间,但煮饭这个过程又不需要我们管理,我们可以利用这段时间去烧菜,烧菜过程中也可能有空闲时间,我们可以去摆置餐具,当电饭锅通知我们饭烧好了,菜也烧好了,最后我们就可以开始吃饭了,所以说,上面的“煮饭 - 饭”,“烧菜 - 菜”都可以看成一个Future的过程。 Java中的Future 在Java的早期版本中,我们不能得到线程的执行结果,不管是继承Thread类还是实现Runnable接口,都无法获取线程的执行结果,所以我们只能在线程执行的run方法里去做相应的一些业务逻辑……

    网友NO.101230

    Scala之文件读取、写入、控制台操作的方法示例

    Scala文件读取 E盘根目录下scalaIO.txt文件内容如下: 文件读取示例代码: //文件读取 val file=Source.fromFile("E:\\scalaIO.txt") for(line - file.getLines) { println(line) } file.close 说明1:file=Source.fromFile(“E:\scalaIO.txt”),其中Source中的fromFile()方法源自 import scala.io.Source源码包,源码如下图: file.getLines(),返回的是一个迭代器-Iterator;源码如下:(scala.io) Scala 网络资源读取 //网络资源读取 val webFile=Source.fromURL("http://spark.apache.org") webFile.foreach(print) webFile.close() fromURL()方法源码如下: /** same as fromURL(new URL(s)) */ def fromURL(s: String)(implicit codec: Codec): BufferedSource = fromURL(new URL(s))(codec) 读取的网络资源资源内容如下: !DOCTYPE htmlhtml lang="en"head meta charset="utf-8" meta http-equiv="X-UA-Compatible" content="IE=edge" meta name="viewport" content="width=device-width, initial-scale=1.0" title Apache Spark - Lightning-Fast Cluster Computing /title meta name="description" content="Apache Spark is a fast and general engine for big data processing, with built-in modules for streaming, SQL, machine learning and graph processing." !-- Bootstrap core CSS -- link href="/css/cerulean.min.css" rel="external nofollow" rel="stylesheet" link href="/css/custom.css" rel="external nofollow" rel="stylesheet" script type="text/javascript" !-- Google Analytics initialization -- var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-32518208-2']); ……

    网友NO.960196

    深入学习java中的Groovy 和 Scala 类

    前言 Java 传承的是平台,而不是语言。有超过 200 种语言可以在 JVM 上运行,它们之中不可避免地会有一种语言最终将取代 Java 语言,成为编写 JVM 程序的最佳方式。本系列将探讨三种下一代 JVM 语言:Groovy、Scala 和 Clojure,比较并对比新的功能和范例,让 Java 开发人员对自己近期的未来发展有大体的认识。 Java 语言的开发人员精通 C++ 和其他语言,包括多继承(multiple inheritance),使得类可以继承自任意数量的父类。多继承带来的一个问题是,不可能确定所继承的功能来自哪个父类。这个问题被称为钻石问题(请参阅 参考资料)。钻石问题和多继承中固有的其他复杂性启发了 Java 语言设计者选择 “单继承加接口” 的方法。 接口定义了语义,但没有定义行为。它们非常适合用来定义方法签名和数据抽象,所有 Java 下一代语言都支持 Java 接口,并且无需进行重大的修改。不过,有些交叉问题不适合使用 “单继承加接口” 模型。这种错位导致必须提供适合 Java 语言的外部机制,比如面向方面的编程。两种 Java 下一代语言(Groovy 和 Scala)通过使用一种被称为混入 或特征 的语言结构在另一个层次的扩展上处理这类问题。本文介绍了 Groovy 中的混入和 Scala 中的特征,并演示了如何使用它们。(Clojure 通过协议处理大致相同的功能,……

    网友NO.631187

    Scala求和示例代码

    Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在Java虚拟机上,并兼容现有的Java程序。 Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库。 def sum(f: Int = Int)(a: Int)(b: Int): Int = { @annotation.tailrec def loop(n: Int, acc: Int): Int = { if (n b) { println(s"n=${n},acc=${acc}") acc } else { println(s"n=${n},acc=${acc}") loop(n + 1, acc + f(n)) } } loop(a, 0) } sum(x = x)(1)(5) sum(x = x*x)(1)(5) //使用通配符 val sumSqure = sum(x = x * x)_ sumSqure(1)(5) =可以理解为映射关系 柯里化和偏应用函数 ……

    Copyright 2018-2020 xz577.com 码农之家

    电子书资源由网友、会员提供上传,本站记录提供者的基本信息及资源来路

    鸣谢: “ 码小辫 ” 公众号提供回调API服务、“ 脚本CDN ”提供网站加速(本站寻求更多赞助支持)

    版权投诉 / 书籍推广 / 赞助:520161757@qq.com

    上传资源(网友、会员均可提供)

    查看最新会员资料及资源信息