안녕하세요. 루틴과 채널에 대해 알아 봅니다. 채널을 통해 실험 해보고, 채널을 통해 데이터를 보내고 2 가지 기능을 사용하려고합니다.두 개의 루틴으로 수신 된 한 채널의 데이터
package main
import (
"fmt"
"os"
"time"
)
func timeout(duration int, ch chan<- bool) {
time.AfterFunc(time.Duration(duration)*time.Second, func() {
ch <- true
})
}
func watcher(duration int, ch <-chan bool) {
<-ch
fmt.Println("\nTimeout! no Answer after", duration, "seconds")
os.Exit(0)
}
func watcher2(duration int, ch <-chan bool) {
<-ch
fmt.Println("This is watcher 2 as a second receiver")
}
func main() {
var data = make(chan bool)
var duration = 5
go timeout(duration, data)
go watcher(duration, data)
go watcher2(duration, data)
var input string
fmt.Print("What is 725/25 ? ")
fmt.Scan(&input)
if input == "29" {
fmt.Println("Correct")
} else {
fmt.Println("Wrong!")
}
}
당신이 나에게 그것에 대해 약간의 설명을 말할 수 :하지만 내 두 번째 기능은
여기내 코드가 실행되지? 감사합니다.
채널에서 보낸 항목은 한 번만 수신됩니다. –