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

慕盖茨5387556
2018-09-28
这节视频来回听了10多遍,根据自己理解画了个图,不知道是否正确,请指正!
写回答
2回答
-
非常感谢同学画了这么好的图。来回听了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去匹配起来。
422020-04-23 -
阿斯蒂芬潍坊
2018-10-21
这图画的很棒
122020-01-30
相似问题
关于队列实现调度器问题
回答 1
第15章《队列实现调度器》的一些写法疑问
回答 1