当前位置:主页 > 计算机电子书 > 程序设计 > OTP开发下载
Erlang/OTP并发编程实战

Erlang/OTP并发编程实战 PDF 完整版

  • 更新:2019-10-24
  • 大小:48.7 MB
  • 类别:OTP开发
  • 作者:Martin、Logan,[美]Eric
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

Erlang/OTP并发编程实战 PDF

Erlang/OTP并发编程实战》偏重于生产环境下的Erlang开发设计,关键解读怎样搭建平稳、版本控制优良、可维护保养的商品级编码,汇集了三位Erlang大師很多年的项目经验。 《Erlang/OTP并发编程实战》关键分成三绝大多数:第一一部分解读Erlang编程及OTP基本;第二一部分解读怎样在实际上开发设计中逐一加上OTP高級特点,进而健全运用,创作者根据围绕这书的主新项目——加快Web浏览的分布式系统缓存文件运用,从入门到精通地表明了实践活动中的各种各样方法;第三一部分探讨如何把编码与其他软件和客户集成化,及其怎样开展特性调优。 《Erlang/OTP并发编程实战》朝向Erlang程序猿,及其对Erlang/OTP很感兴趣的开发者。

目录

  • 第一部分 Erlang起步:OTP基础
  • 第1章 Erlang/OTP平台 2
  • 1.1 基于进程的并发编程 3
  • 1.1.1 理解并发 3
  • 1.1.2 Erlang的进程模型 4
  • 1.1.3 4种进程通信范式 5
  • 1.1.4 用Erlang进程编程 8
  • 1.2 Erlang的容错架构 10
  • 1.2.1 进程链接如何工作 10
  • 1.2.2 监督与退出信号捕捉 10
  • 1.2.3 进程的分层容错 12
  • 1.3 分布式Erlang 13
  • 1.4 Erlang运行时系统和虚拟机 13
  • 1.4.1 调度器 14
  • 1.4.2 I/O与调度 15
  • 1.4.3 进程隔离与垃圾回收器 15
  • 1.5 函数式编程:Erlang的处世之道 16
  • 1.6 小结 16
  • 第2章 Erlang语言精要 18
  • 2.1 Erlang shell 19
  • 2.1.1 启动shell 19
  • 2.1.2 输入表达式 20
  • 2.1.3 shell函数 21
  • 2.1.4 退出shell 21
  • 2.1.5 任务控制基础 22
  • 2.2 Erlang的数据类型 23
  • 2.2.1 数值与算术运算 24
  • 2.2.2 二进制串与位串 25
  • 2.2.3 原子 26
  • 2.2.4 元组 27
  • 2.2.5 列表 27
  • 2.2.6 字符串 28
  • 2.2.7 pid、端口和引用 29
  • 2.2.8 将函数视作数据:fun函数 30
  • 2.2.9 项式的比较 30
  • 2.2.10 解读列表 31
  • 2.3 模块和函数 33
  • 2.3.1 调用其他模块中的函数(远程调用) 33
  • 2.3.2 不同元数的函数 34
  • 2.3.3 内置函数和标准库模块 34
  • 2.3.4 创建模块 35
  • 2.3.5 模块的编译和加载 36
  • 2.3.6 独立编译器erlc 37
  • 2.3.7 已编译模块与在shell中求值 37
  • 2.4 变量与模式匹配 38
  • 2.4.1 变量的语法 39
  • 2.4.2 单次赋值 39
  • 2.4.3 模式匹配:加强版的赋值 41
  • 2.4.4 解读模式 42
  • 2.5 函数与子句 44
  • 2.5.1 带副作用的函数:文本打印 44
  • 2.5.2 用模式匹配在多个子句中进行选择 45
  • 2.5.3 保护式 46
  • 2.5.4 模式、子句和变量作用域 47
  • 2.6 Case和if表达式 48
  • 2.6.1 Erlang的布尔型if-then-else分支选择 48
  • 2.6.2 If表达式 49
  • 2.7 fun函数 49
  • 2.7.1 作为现有函数别名的fun函数 49
  • 2.7.2 匿名fun函数 50
  • 2.8 异常与try/catch 52
  • 2.8.1 抛出(触发)异常 52
  • 2.8.2 运用try...catch 53
  • 2.8.3 try...of...catch 53
  • 2.8.4 after 54
  • 2.8.5 获取栈轨迹 54
  • 2.8.6 重抛异常 55
  • 2.8.7 传统的catch 55
  • 2.9 列表速构 56
  • 2.9.1 列表速构记法 56
  • 2.9.2 映射、过滤和模式匹配 56
  • 2.10 比特位语法与位串速构 57
  • 2.10.1 构造位串 57
  • 2.10.2 比特位语法中的模式匹配 58
  • 2.10.3 位串速构 59
  • 2.11 记录语法 59
  • 2.11.1 记录声明 60
  • 2.11.2 创建记录 60
  • 2.11.3 记录的字段以及模式匹配 60
  • 2.11.4 更新记录字段 60
  • 2.11.5 记录声明应该放在哪儿 61
  • 2.12 预处理与文件包含 61
  • 2.12.1 宏的定义和使用 61
  • 2.12.2 文件包含 62
  • 2.12.3 条件编译 63
  • 2.13 进程 64
  • 2.13.1 操纵进程 64
  • 2.13.2 消息接收与选择性接收 65
  • 2.13.3 注册进程 66
  • 2.13.4 消息投递与信号 67
  • 2.13.5 进程字典 67
  • 2.14 ETS表 68
  • 2.14.1 为何ETS表被设计成这样 68
  • 2.14.2 ETS表的基本用法 68
  • 2.15 以递归代替循环 69
  • 2.15.1 从迭代到递归 69
  • 2.15.2 理解尾递归 71
  • 2.15.3 累加器参数 72
  • 2.15.4 谈谈效率 72
  • 2.15.5 编写递归函数的窍门 73
  • 2.16 Erlang编程资源 78
  • 2.16.1 图书 78
  • 2.16.2 在线资料 79
  • 2.17 小结 79
  • 第3章 开发基于TCP的RPC服务 80
  • 3.1 你所创建的是什么 81
  • 3.1.1 基础知识提醒 82
  • 3.1.2 行为模式基础 82
  • 3.2 实现RPC服务器 85
  • 3.2.1 行为模式实现模块的典型布局 85
  • 3.2.2 模块首部 85
  • 3.2.3 API段 88
  • 3.2.4 回调函数段 92
  • 3.3 运行RPC服务器 98
  • 3.4 浅谈测试 99
  • 3.5 小结 100
  • 第4章 OTP应用与监督机制 101
  • 4.1 OTP应用 101
  • 4.1.1 OTP应用的组织形式 102
  • 4.1.2 为应用添加元数据 103
  • 4.1.3 应用行为模式 104
  • 4.1.4 应用结构小结 105
  • 4.2 用监督者实现容错 105
  • 4.2.1 实现监督者 106
  • 4.2.2 监督者重启策略 107
  • 4.2.3 编写子进程规范 108
  • 4.3 启动应用 109
  • 4.4 生成EDoc文档 110
  • 4.5 小结 110
  • 第5章 主要图形化监测工具的使用 112
  • 5.1 Appmon 112
  • 5.1.1 Appmon GUI 112
  • 5.1.2 WebTool版Appmon 115
  • 5.2 Pman 116
  • 5.3 调试器 118
  • 5.4 表查看器TV 121
  • 5.5 工具栏 123
  • 5.6 小结 123
  • 第二部分 构建生产系统
  • 第6章 打造一套缓存系统 126
  • 6.1 故事背景 126
  • 6.2 缓存的设计 127
  • 6.3 创建OTP应用的基本骨架 130
  • 6.3.1 应用目录结构的布局 130
  • 6.3.2 创建应用元数据 130
  • 6.3.3 实现应用行为模式 131
  • 6.3.4 实现监督者 131
  • 6.4 从应用骨架到五脏俱全的缓存 133
  • 6.4.1 编写sc_element进程 134
  • 6.4.2 实现sc_store模块 138
  • 6.4.3 打造应用层API模块 142
  • 6.5 小结 144
  • 第7章 Erlang/OTP中的日志与事件处理 145
  • 7.1 Erlang/OTP中的日志 146
  • 7.1.1 日志概述 146
  • 7.1.2 Erlang/OTP内置的日志设施 147
  • 7.1.3 标准日志函数 147
  • 7.1.4 SASL与崩溃报告 149
  • 7.2 用gen_event编写自定义事件处理器 153
  • 7.2.1 gen_event行为模式简介 153
  • 7.2.2 事件处理器示例 154
  • 7.2.3 处理错误事件 155
  • 7.3 为Simple Cache添加自定义事件流 157
  • 7.3.1 事件流API 157
  • 7.3.2 将处理器整合进Simple Cache 159
  • 7.3.3 订阅自定义事件流 161
  • 7.4 小结 162
  • 第8章 分布式Erlang/OTP简介 163
  • 8.1 Erlang分布式基础 163
  • 8.1.1 复制式进程间通信 164
  • 8.1.2 位置透明性 165
  • 8.2 节点与集群 166
  • 8.2.1 节点的启动 166
  • 8.2.2 节点的互联 167
  • 8.2.3 Erlang节点如何定位其他节点并与之建立通信 169
  • 8.2.4 magic cookie安全系统 170
  • 8.2.5 互联节点间的消息传递 171
  • 8.2.6 使用远程shell 173
  • 8.3 资源探测攻略 175
  • 8.3.1 术语 175
  • 8.3.2 算法 176
  • 8.3.3 实现资源探测应用 177
  • 8.4 小结 182
  • 第9章 用Mnesia为cache增加分布式支持 183
  • 9.1 分布式缓存 184
  • 9.1.1 选取通信策略 184
  • 9.1.2 同步缓存和异步缓存 186
  • 9.1.3 分布式表 188
  • 9.2 用Mnesia实现分布式数据存储 189
  • 9.2.1 建立项目数据库 189
  • 9.2.2 初始化数据库 191
  • 9.2.3 建表 192
  • 9.2.4 向表中录入数据 195
  • 9.2.5 执行基本查询 197
  • 9.3 基于Mnesia的分布式缓存 199
  • 9.3.1 用Mnesia取代ETS 199
  • 9.3.2 让缓存识别出其他节点 202
  • 9.3.3 用资源探测定位其他缓存实例 205
  • 9.3.4 动态复制Mnesia表 206
  • 9.4 小结 209
  • 第10章 打包、服务和部署 210
  • 10.1 从系统的角度看应用 210
  • 10.1.1 结构 211
  • 10.1.2 元数据 211
  • 10.1.3 系统如何管理运行中的应用 212
  • 10.2 制作发布镜像 213
  • 10.2.1 发布镜像 213
  • 10.2.2 准备发布代码 214
  • 10.2.3 发布镜像的元数据文件 214
  • 10.2.4 脚本与启动文件 216
  • 10.2.5 系统配置 217
  • 10.2.6 启动目标系统 218
  • 10.3 发布镜像打包 219
  • 10.3.1 创建发布镜像包 219
  • 10.3.2 发布镜像包的内容 220
  • 10.3.3 定制发布镜像包 222
  • 10.4 安装发布镜像 223
  • 10.5 小结 223
  • 第三部分 集成与完善
  • 第11章 为缓存添加HTTP接口 226
  • 11.1 实现TCP服务器 226
  • 11.1.1 高效TCP服务器的设计模式 227
  • 11.1.2 搭建tcp_interface应用的骨架 228
  • 11.1.3 填充TCP服务器的实现逻辑 228
  • 11.1.4 简单文本协议 231
  • 11.1.5 文本接口实现 232
  • 11.2 打造一套全新的Web接口 234
  • 11.2.1 HTTP简介 234
  • 11.2.2 实现一套通用的Web服务器行为模式 237
  • 11.2.3 初识REST 248
  • 11.2.4 用gen_web_server实现REST式协议 249
  • 11.3 小结 252
  • 第12章 用端口和NIF集成外围代码 253
  • 12.1 端口和NIF 254
  • 12.1.1 普通端口 255
  • 12.1.2 链入式端口驱动 256
  • 12.1.3 原生函数(NIF) 257
  • 12.2 用端口来集成解析器 257
  • 12.2.1 Erlang方面的端口 257
  • 12.2.2 C方面的端口 260
  • 12.2.3 编译运行 271
  • 12.3 开发链入式驱动 272
  • 12.3.1 初识链入式驱动 273
  • 12.3.2 驱动的C语言部分 274
  • 12.3.3 编译驱动代码 278
  • 12.3.4 驱动的Erlang部分 279
  • 12.4 将解析器实现为NIF 280
  • 12.4.1 NIF的Erlang部分 280
  • 12.4.2 NIF的C代码部分 281
  • 12.4.3 编译与运行代码 287
  • 12.5 小结 288
  • 第13章 用Jinterface实现Erlang和Java间的通信 289
  • 13.1 利用Jinterface在Erlang中集成Java 290
  • 13.1.1 OtpNode类 290
  • 13.1.2 OtpMbox类 291
  • 13.1.3 Erlang数据结构的Java映射 291
  • 13.1.4 示例:Java中的消息处理 292
  • 13.1.5 在Erlang中与Java节点通信 294
  • 13.2 安装和配置HBase 296
  • 13.2.1 下载和安装 296
  • 13.2.2 配置HBase 296
  • 13.3 为Simple Cache和HBase牵线搭桥 297
  • 13.3.1 Erlang方面:sc_hbase.erl 298
  • 13.3.2 HBaseConnector类 299
  • 13.3.3 Java中的消息处理 301
  • 13.3.4 HBaseTask类 304
  • 13.4 在Simple Cache中整合HBase 306
  • 13.4.1 查询 306
  • 13.4.2 插入 307
  • 13.4.3 删除 307
  • 13.5 运行集成系统 308
  • 13.6 小结 310
  • 第14章 优化与性能 311
  • 14.1 如何进行性能调优 312
  • 14.1.1 设定性能目标 312
  • 14.1.2 设定基线 313
  • 14.1.3 系统性能分析 313
  • 14.1.4 确定需要解决的问题 313
  • 14.1.5 测定优化成果 313
  • 14.2 Erlang代码性能分析 314
  • 14.2.1 用cprof计算调用次数 314
  • 14.2.2 用fprof测定执行时间 316
  • 14.3 Erlang编程语言的缺陷 320
  • 14.3.1 基本数据类型的性能特点 321
  • 14.3.2 内置函数和运算符的性能 324
  • 14.3.3 函数 325
  • 14.3.4 进程 327
  • 14.4 小结 329
  • 附录A 安装Erlang 330
  • 附录B 列表与引用透明性 332

资源下载

资源下载地址1:https://pan.baidu.com/s/1PxdTXlF4VWFLnssHg3TlHA

相关资源

网友留言