请稍等 ...
×

采纳答案成功!

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

我对 QueuedScheduler 的理解

对于 QueuedScheduler,我认为它实现了两层解耦,一层是外部的,一层是内部的。

外部解耦是指通过两个 Queue 完成了 request 和 worker 之间的缓存与通信。内部解耦是指它通过 requestChan 和 workerChan 这两个private property(姑且这么称呼)外加 Submit() 和 WorkerReady() 这两个 public method,实现了对两个 Queue 操作的解耦。 这种方式可以更方便地、并发地对接收到的 request 和 worker channel 进行更复杂的处理。(虽然在QueueScheduler 这个例子里的操作只是向两个 Queue 中 append 数据,不会因消耗太多的资源而发生阻塞)

我在学习这部分的时候是先尝试理解外部的解耦:忽略掉两个 private property,把 Submit() 和 WorkerReady() 认为单纯的 queue append 操作,这样就不存在 select 的轮询操作,代码看上去就更加简洁易理解。之后再进一步完成 scheduler 的内部解耦。

不知我这样理解是否正确,望老师和同学指正。

正在回答 回答被采纳积分+3

0回答

问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号