Erlang/OTP并发编程实战

《Erlang/OTP并发编程实战》
基本信息
原书名:Erlang and OTP in Action
作者: (美)洛根(Logan,M.) 梅里特(Merritt,E.) (瑞典) 卡尔森(Carlsson,R.) [作译者介绍]
译者: 连城
出版社:人民邮电出版社
ISBN:9787115285591
上架时间:2012-7-3
出版日期:2012 年7月
开本:16开
页码:1
版次:1-1
所属分类: 计算机
 
更多关于 》》》《 Erlang/OTP并发编程实战
内容简介
书籍
计算机书籍
  《erlang/otp并发编程实战》侧重生产环境下的erlang 开发,主要讲解如何构建稳定、版本控制良好、可维护的产品级代码,凝聚了三位erlang 大师多年的实战经验。
  《erlang/otp并发编程实战》主要分为三大部分:第一部分讲解erlang 编程及otp 基础;第二部分讲解如何在实际开发中逐一添加otp 高级特性,从而完善应用,作者通过贯穿本书的主项目——加速web 访问的分布式缓存应用,深入浅出地阐明了实践中的各种技巧;第三部分讨论如何将代码与其他系统和用户集成,以及如何进行性能调优。
  《erlang/otp并发编程实战》面向erlang 程序员,以及对erlang/otp 感兴趣的开发人员。
目录
《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

图书信息来源: 中国互动出版网

转载于:https://www.cnblogs.com/china-pub/archive/2012/07/03/2574979.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值