Erlang/OTP并发编程实战PDF电子书下载
- 电子书积分:12 积分如何计算积分?
- 作 者:(美)洛根,(美)梅里特,(瑞典)卡尔森著;连城译
- 出 版 社:北京:人民邮电出版社
- 出版年份:2012
- ISBN:9787115285591
- 页数:333 页
第一部分Erlang起步:OTP基础 2
第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.2If表达式 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
第二部分 构建生产系统 126
第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 Cach 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
第三部分 集成与完善 226
第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
- 《Maya 2018完全实战技术手册》来阳编著 2019
- 《Python3从入门到实战》董洪伟 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《大数据Hadoop 3.X分布式处理实战》吴章勇,杨强 2020
- 《星空摄影后期实战》阿五在路上著 2020
- 《半小时漫画股票实战法》财经杂质著 2019
- 《深度学习与飞桨PaddlePaddle Fluid实战》于祥 2019
- 《数字插画实战 人像创作30例》王鲁光著 2019
- 《2017国家执业药师资格考试 全考点实战通关必备 中药学综合知识与技能 第3版》国家执业药师资格考试命题研究专家组 2017
- 《全国职业院校工业机器人技术专业规划教材 工业机器人现场编程》(中国)项万明 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019