请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答

2回答

ccmouse 2018-10-09 20:29:46

非常感谢同学画了这么好的图。来回听了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 回复 有任何疑惑可以回复我~
阿斯蒂芬潍坊 2018-10-21 20:21:55

这图画的很棒

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信