WorkerChan这个方法是从哪里向这个chan 发送数据的?
来源:2-2 内建变量类型

慕粉2233184011
2018-10-11
package scheduler
type QueuedScheduler struct {
requestChan chan engine.Request
workerChan chan chan engine.Request
}
func (s *QueuedScheduler) WorkerChan() chan engine.Request {
return make(chan engine.Request)
}
这里 workerChan()方法返回的一个chan, 但一直没有地方向这个chan 发送数据, 想知道 这个chan 是从哪接收数据的?
写回答
1回答
-
ccmouse
2018-10-14
它被Worker存起来了。下面是调用的地方:
for i := 0; i < e.WorkerCount; i++ {
e.createWorker(e.Scheduler.WorkerChan(),
out, e.Scheduler)
}存起来以后,通过WorkerReady方法向Scheduler注册自己已经就绪来接收新的Request。
Scheduler肚子里有一个workerChan chan chan Request,就是所有调过WorkerReady的人汇报过来的chan Request。
00
相似问题