여러 번 병렬로 기능을 실행해야합니다.
함수가 true
(채널에 true
을 보내는 경우)을 반환하면 최종 결과는 true
이되어야합니다.골란에 채널이 붙어 있습니다.
goroutines와 채널을 사용하여 어떻게 이것을 할 수 있습니까?
// Some performance intensive function
func foo(i int, c chan bool) {
// do some processing and return either true or false
c <- true // or false
}
func main() {
flg := false
ch := make(chan bool)
for i := 0; i < 10; i++ {
go foo(i, ch)
}
// If even once foo() returned true then val should be true
flg = flg || <-ch
}
"채널을 사용하여 어떻게이 작업을 수행합니까?" --- 채널을 사용해야하는 이유는 무엇입니까? – zerkms
귀하의 시도를 보여주십시오. 코드에서 채널을 전혀 사용하지 않습니다. – Flimzy
(코드는 쓰여진대로 읽기가 쉽지 않으므로'gofmt'도 사용하는 것이 좋습니다) – Flimzy