让我们假设有一个简单的整数计算器,它只支持加法和乘法运算。它将接收一个整数生成器和一个整数作为其输入参数的加性或乘数,并对来自生成器的每个元素应用相应的计算。但是,当我使用goroutines和通道来实现相同的逻辑时,直接的方法/函数调用关系就消失了,因为goroutines利用通道来发送和接收数据。generator := func(integers ...int) <-chan int {
intStream := make
我正在通过 of 工作,我对使用有限通道的适当Go惯例感到好奇。在本练习中,我需要从两个通道读取值,并确定值是否相同和顺序相同。如果不是,我可以立即从我的方法返回false。然而,如果我这样做,会去为我自动清理我的渠道,还是我的猩猩会被永远挂在绞刑和消耗资源?处理这一问题的最好方法是将一个取消通道传递到我的goroutines中,但是由于goroutines读取的数据数量有限,所以只使用所有数据似乎很好。在现实生活中处理这个案子最好的方法是什么?
我有一个用Go写的长时间运行的服务器。Main触发了几个goroutine,程序的逻辑在这些goroutine中执行。在那之后,main不会做任何有用的事情。一旦main退出,程序将退出。我考虑创建一个通道,并通过接收通道来延迟main的退出,但我认为如果我所有的goroutines在某个时候都变得不活动,这可能会有问题。package main
"fmt")
go forev