元数据
Scala并发编程(第2版)
- 书名: Scala并发编程(第2版)
- 作者: 亚历山大·普罗科佩茨
- 简介: 本书是一本关于并发编程技术的教程,书中详细介绍了并发编程中的主要概念和基本数据结构,包括传统并发模型、基于Future和Promise的异步编程、数据并行容器、基于响应式扩展的并发编程、软件事务性内存、角色模型、并发编程实践和反应器编程模型等。本书基于Scala语言编写,实例丰富,可操作性很强。本书面向的用户群体以Scala用户为主,因为书中所有的示例都是基于Scala代码的。但其他语言用户也可以从中获益良多,因为书中介绍的并发编程概念是普遍适用的,并不局限于特定编程语言,只不过Scala比较适用于并发编程而已。
- 出版时间 2021-05-01 00:00:00
- ISBN: 9787115558343
- 分类: 计算机-编程设计
- 出版社: 人民邮电出版社
高亮划线
4.2 Promise
-
📌 Promise是指只能一次性赋值或抛出异常的一种对象。 ^40223831-33-737-764
- ⏱ 2023-08-03 00:38:46
-
📌 事实上每个 Promise 对象恰好对应一个Future 对象。 ^40223831-33-1232-1264
- ⏱ 2023-08-03 00:37:42
-
📌 Promise和Future分别表示一个单赋值变量的两个方面,Promise对象让用户往Future对象中赋值,而Future对象让用户可以将值读出来。 ^40223831-33-1510-1586
- ⏱ 2023-08-03 00:39:51
第6章基于响应式扩展的并发编程
-
📌 事件流可产生任意数目的值,这种值称为事件。 ^40223831-47-974-995
- ⏱ 2023-08-03 00:05:27
-
📌 事件驱动编程(event-driven programming)指的是程序控制流由事件决定的编程风格 ^40223831-47-1097-1147
- ⏱ 2023-08-03 00:08:12
-
📌 响应式编程被定义为一种支持在程序和数据值之间定义各种约束的编程风格。 ^40223831-47-1296-1330
- ⏱ 2023-08-03 00:06:55
6.1 创建Observable对象
- 📌 Future对象用于封装异步计算的结果,而Observable对象可视为Future对象的一般化。和Future只生成一个成功事件或失败事件不同,Observable对象发送一系列事件,然后才进入错误状态或完成状态。 ^40223831-48-9511-9619
- ⏱ 2023-08-03 00:19:06
6.4 Subject和自顶向下响应式编程
- 📌 图6.9两种风格的区别可由图6.9看出。在自底向上的方法中,首先要定义好所有的内核模块,然后让 RxOS 依赖它们。而在自顶向下的方法中,RxOS 并不依赖内核模块,它只是用启动序列模块将它们拼在了一起。 ^40223831-51-4171-4312
- ⏱ 2023-08-03 00:27:38
8.1 使用角色模型
-
📌 角色系统是一个角色的分层结构,且这些角色之间共享一些配置选项。角色系统负责创建新的角色、查找角色、记录重要事件等。角色系统类似于软件公司。角色类是一个描述角色内部状态和指导角色处理消息的模板。同一个角色类可以创建出多个角色,角色类类似于公司内的特定职位,比如软件工程师、营销经理或人事经理。角色实例是一个存在于运行时并负责接收消息的实体。 ^40223831-63-1277-1504
- ⏱ 2023-08-02 19:50:15
-
📌 在软件公司的例子中,角色实例就是那些具体的雇员。 ^40223831-63-1567-1591
- ⏱ 2023-08-02 19:50:33
-
📌 消息是角色之间通信的基本单元。 ^40223831-63-1620-1635
- ⏱ 2023-08-02 19:50:45
-
📌 消息类似于公司内的电子邮件。 ^40223831-63-1654-1668
- ⏱ 2023-08-02 19:50:54
-
📌 邮箱是用来缓冲消息的一部分内存,只不过它属于每个特定的角色实例。 ^40223831-63-1808-1840
- ⏱ 2023-08-02 19:53:42
-
📌 角色引用是一种支持角色向一个具体角色发送消息的对象。此对象向程序员隐藏了角色的具体位置信息。角色可能运行在不同的进程中,也可能在不同的计算机上。角色引用可以让角色向另一个角色发送消息,而不需要关心那个角色的运行位置。从软件公司的角度看,角色引用对应于雇员的电子邮件地址。 ^40223831-63-1959-2094
- ⏱ 2023-08-02 19:55:03
-
📌 调度器是一个用来调度角色的组件,它决定了角色何时可以处理消息并为之分配计算资源。 ^40223831-63-2199-2239
- ⏱ 2023-08-02 19:56:54
-
📌 调度器确保了那些邮箱非空的角色总能由一个线程运行起来,并线性地处理这些消息。调度器的类比对象之一是软件公司内的电子邮件回复政策。有些雇员,比如技术人员,需要及时响应邮件。软件工程师则更为自由一点,在回复邮件之前还可以修复几个 Bug。而修理工则整天都在办公大楼里巡查,只会在早上上班前看一眼电子邮件。 ^40223831-63-2263-2413
- ⏱ 2023-08-02 19:57:38
-
📌 状态机是一种描述系统中的状态和状态之间的过渡的数学模型。在角色中,每个行为对应于状态机中的一种状态。如果角色收到某个消息之后调用了 become,则两个状态之间就发生了过渡。 ^40223831-63-9967-10054
- ⏱ 2023-08-02 20:01:01
第10章反应器编程模型
- 📌 布式计算中的反应器编程模型(reactor programming model) ^40223831-75-1126-1166
- ⏱ 2023-08-02 20:13:22
10.1 对反应器的需求
-
📌 反应器是传统角色模型中角色的一般化。 ^40223831-76-1413-1431
- ⏱ 2023-08-02 20:21:01
-
📌 通道是相应的事件的写入端,可以有任意数目的反应器向同一个通道写入数据。通道完全等价于角色模型中的角色引用。 ^40223831-76-1639-1692
- ⏱ 2023-08-02 20:25:44
10.5 反应器
- 📌 反应器是并发性的基本单元。类似于角色用于接收消息,反应器用于接收事件,采用不同的名称是为了避免混淆。 ^40223831-80-679-729
- ⏱ 2023-08-02 23:58:29
读书笔记
10.1 对反应器的需求
划线评论
- 📌 事件流是一个通道的读取端,只有拥有这个通道的反应器才可以从相应的事件流中读取数据。事件流不能被多个反应器共享。 ^3533118-7KaEshASW
- 💭 rust 中的 mpsc (multi-producer single-consumer) channel
- ⏱ 2023-08-02 20:41:16
