基于amqp实现的golang消息队列MaxQ基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 1/22 基于amqp实现的golang消息队列 MaxQ 2017-07-01 张培培 饿了么-基础框架组 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 2/22 内容 1. 队列 2 IPC消息队列 3. AMQP协议 4. MaxQ架构模型 5. MaxQ相关特性 6. 使用场景和案例 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 3/22 1. 队列 跟消息队列相比,有哪些共性? 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192 生产消费关系 Pull/Push 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 5/22 2. IPC消息队列 跟消息队列相比,有哪些共性? 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 6/220 码力 | 22 页 | 1.45 MB | 1 年前3
Hello 算法 1.0.0b2 Golang版. . . . . . . . . . . . . . . . . 59 5. 栈与队列 61 5.1. 栈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.2. 队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.3. 双向队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 5.4. 小结 . . . . . . . . . . . . . . . . . . . . . . . . . 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时0 码力 | 202 页 | 15.73 MB | 1 年前3
Hello 算法 1.0.0b1 Golang版. . . . . . . . . . . . . . . . . 59 5. 栈与队列 61 5.1. 栈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.2. 队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.3. 双向队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 5.4. 小结 . . . . . . . . . . . . . . . . . . . . . . . . . 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 ‧ 数据结构:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、 散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时0 码力 | 190 页 | 14.71 MB | 1 年前3
Hello 算法 1.1.0 Go版同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 本书旨在通过清晰易懂的动画图解和可运行的代码示例,使读者理解算法和数据结构的核心概念,并能够通 过编程来实现它们。在此基 . . . . . . . . . . . . . . . . 87 第 5 章 栈与队列 90 5.1 栈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.2 队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.3 双向队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 5.4 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 383 页 | 18.48 MB | 1 年前3
Hello 算法 1.0.0b4 Golang版. . . . . . . . . . . . . . . . . 66 5. 栈与队列 70 5.1. 栈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.2. 队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.3. 双向队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 5.4. 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . 本书主要内容包括: ‧ 复杂度分析:数据结构和算法的评价维度,算法效率的评估方法。时间复杂度、空间复杂度的推算方 法、常见类型、示例等。 ‧ 数据结构:基本数据类型,数据结构的分类方法。数组、链表、栈、队列、散列表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤、 示例题目等。0 码力 | 347 页 | 27.40 MB | 1 年前3
Hello 算法 1.0.0 Golang版. . . . . . . . . . . . . . . . 87 第 5 章 栈与队列 90 5.1 栈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.2 队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.3 双向队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 5.4 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 本书的主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤 和示例问题等。0 码力 | 382 页 | 17.60 MB | 1 年前3
Hello 算法 1.0.0b5 Golang版. . . . . . . . . . . . . . . . 81 第 5 章 栈与队列 84 5.1 栈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 5.2 队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.3 双向队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.4 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 本书主要内容如图 0‑1 所示。 ‧ 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度、空间复杂度的推算方法、常见类型、示 例等。 ‧ 数据结构:基本数据类型,数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤、 示例题目等。0 码力 | 379 页 | 30.70 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Go 版同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 本书旨在通过清晰易懂的动画图解和可运行的代码示例,使读者理解算法和数据结构的核心概念,并能够通 过编程来实现它们。在此基 . . . . . . . . . . . . . . . . 87 第 5 章 栈与队列 90 5.1 栈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.2 队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.3 双向队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 5.4 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 384 页 | 18.49 MB | 10 月前3
Golang 101(Go语言101 中文版) v1.21.a当一个延迟调用语句被执行时,其中的延迟函数调用不会立即被执行,而是被 推入由当前协程维护的一个延迟调用队列(一个后进先出队列)。 当一个函 数调用返回(此时可能尚未完全退出)并进入它的退出阶段(第9章)后,所 有在执行此函数调用的过程中已经被推入延迟调用队列的调用将被按照它们被 推入的顺序逆序被弹出队列并执行。 当所有这些延迟调用执行完毕后,此函 数调用也就完全退出了。 下面这个例子展示了如何使用延迟调用函数。 的更多关于延迟调用(第29章)一文中读到这样的例子。 协程和延迟调用的实参的估值时刻 一个延迟调用的实参是在此调用对应的延迟调用语句被执行时被估值的。 或 者说,它们是在此延迟调用被推入延迟调用队列时被估值的。 这些被估值的 结果将在以后此延迟调用被执行的时候使用。 一个匿名函数体内的表达式是在此函数被执行的时候才会被逐渐估值的,不管 此函数是被普通调用还是延迟/协程调用。 一个例子: 1| b: 3 b: 3 b: 3 第一个匿名函数中的循环打印出2、1和0这个序列,但是第二个匿名函数中的 循环打印出三个3。 因为第一个循环中的i是在fmt.Println函数调用被推入延 迟调用队列的时候估的值,而第二个循环中的i是在第二个匿名函数调用的退 出阶段估的值(此时循环变量i的值已经变为3)。 我们可以对第二个循环略加修改(使用两种方法),使得它和第一个循环打印 出相同的结果。0 码力 | 821 页 | 956.82 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a当一个延迟调用语句被执行时,其中的延迟函数调用不会立即被执行,而是被 推入由当前协程维护的一个延迟调用队列(一个后进先出队列)。 当一个函数 调用返回(此时可能尚未完全退出)并进入它的退出阶段(第9章)后,所有在 执行此函数调用的过程中已经被推入延迟调用队列的调用将被按照它们被推入 的顺序逆序被弹出队列并执行。 当所有这些延迟调用执行完毕后,此函数调用 也就完全退出了。 下面这个例子展示了如何使用延迟调用函数。 的更多关于延迟调用(第29章)一文中读到这样的例子。 协程和延迟调用的实参的估值时刻 一个延迟调用的实参是在此调用对应的延迟调用语句被执行时被估值的。 或者 说,它们是在此延迟调用被推入延迟调用队列时被估值的。 这些被估值的结果 将在以后此延迟调用被执行的时候使用。 一个匿名函数体内的表达式是在此函数被执行的时候才会被逐渐估值的,不管 此函数是被普通调用还是延迟/协程调用。 一个例子: package 0 b: 3 b: 3 b: 3 第一个匿名函数中的循环打印出2、1和0这个序列,但是第二个匿名函数中的循 环打印出三个3。 因为第一个循环中的i是在fmt.Println函数调用被推入延迟调 用队列的时候估的值,而第二个循环中的i是在第二个匿名函数调用的退出阶段 估的值(此时循环变量i的值已经变为3)。 我们可以对第二个循环略加修改(使用两种方法),使得它和第一个循环打印 出相同的结果。0 码力 | 608 页 | 1.08 MB | 1 年前3
共 31 条
- 1
- 2
- 3
- 4













