对15-4:队列实现调度器 理解的图示,请大家指正

来源:16-4 队列实现调度器

慕盖茨5387556

2018-09-28

这节视频来回听了10多遍,根据自己理解画了个图,不知道是否正确,请指正!
图片描述

写回答

2回答

ccmouse

2018-10-09

非常感谢同学画了这么好的图。来回听了10遍也说明我的课程有改进的余地:)


首先,我在这里所希望的是一个抽象层面的理解。有一个非常重要的认识:我们这里的chan Request其实就是Worker的handle。也就是说,拿到chan Request,就是拿到了Worker,就可以和Worker进行通信。

所以我们有两个channel,我们的调度器负责把两个channel里的东西收下来排队。对应图上左边一个是request队列,右边一个worker队列。每次调度器从request队列拿一个request,从Worker队列拿一个Worker,把这个request发给Worker。

怎么发呢?通过Worker的handle,也就是它对应的这个chan Request进行发送。


那我们再来看同学的这个图,有两点可以改进:

一:每个chan Request一一对应一个Worker,这一点还可以强调下。

二:这里有三个并行的模块,引擎,调度器和Worker。他们之间分别通过channel来通信。而request队列和Worker(chan Request)队列,他们都是调度器的内部数据结构。我们看到requestQ和workerQ这两个是局部变量。他们只是用来辅助将request和对应的Worker去匹配起来。



4
2
szuxxy
回复
慕盖茨5387556
同学,你用的是什么工具啊?
2020-04-23
共2条回复

阿斯蒂芬潍坊

2018-10-21

这图画的很棒

1
2
乐只君子
回复
慕盖茨5387556
一图胜千言!
2020-01-30
共2条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程