Go语言不是只有值传递吗

来源:16-5 重构和总结

daydreams_lactroi

2018-09-10

但是传递channel类型的参数的时候感觉并没有拷贝 直接把原来的channel传过去了

写回答

2回答

ccmouse

2018-09-10

因为channel的肚子里有类似指针的东西。这个就类似于我在值传递那节讲到的cache。另外,map, slice也是这样的行为

0
0

落秋流年

2019-05-15

func (s *SimpleScheduler) Submit(r engine.Request) {
    go func() {s.workChan <- r}()
}

老师,这段代码是并发版爬虫简单调度器中的submit方法。我有个疑问,这个并发版的架构图中Scheduler用了很多个goroutine与worker通讯,任务通道是不是只有一个啊,就是说虽然有很多goroutine但是大家用的都是一个派发通道,接受者worker很多,但也是在抢一个接受通道。这个通道就是concurrentEngine的workChan。goroutine只是避免了阻塞任务流。老师我可以这样理解吗

0
1
尼克2018
对,你理解很正确
2021-01-17
共1条回复

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

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

5995 学习 · 1909 问题

查看课程