golang channel 怎么判断是否读取完成(2)?

需求是判断p是否满足p=a^2+b^2+c^2
packagemain
import(
"fmt"
"math"
)
funcabcasync(pint)bool{
na:=int(math.Sqrt(float64(p)))+2
channel:=make(chanbool)
fora:=0;aforb:=0;bgofunc(){
forc:=0;cifa*a+b*b+c*c==p{
channel<-true
}
}
}()
}
}
return<-channel
}
funcmain(){
//d:=abcasync(41)
d:=abcasync(23)
fmt.Println(d)
}
这里要求,一旦满足if条件,就退出程序,以避免浪费计算时间,否则就要遍历所有的情况。那么,如何判断所有的协程都执行完了呢?会报错,请教如何解决?
PIPIONE
浏览 886回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript