【发布时间】:2018-12-21 09:16:56
【问题描述】:
在 Go 编程中创建频道的最佳做法是什么?为了组织和清晰,您是否应该在主程序中创建所有通道?
我已经查看了在子例程中创建通道的 go 代码。在子例程中创建主例程时,这些通道是否禁止进入主例程?
请澄清。提前致谢。
【问题讨论】:
-
Goroutines 与线程不同;这些术语不可互换。
-
在哪里创建频道并不重要。通常它会被创建然后传递给一个函数,因为
go someFunc()无法向调用go的例程返回任何东西(在传统意义上),所以这样做更容易。没有什么可以阻止 goroutine 创建通道并通过它与main()通信,这样做会按预期工作。 -
Go 有 goroutine,没有线程,它们之间没有父子关系。通道只是值,它们与 goroutine 没有任何关系。
标签: go concurrency channel