IT-개발,DB
go 채널을 사용하는 좋은 예제
SB리치퍼슨
2021. 8. 19. 17:18
go channel을 사용하는 좋은 예제
이 코드에서는 go channel을 exit할 수 있는 예제가 포함되어 있습니다.
기본적인 예제 중 select 문을 사용해서 채널값을 받게 되면 루틴을 종료하는 예제입니다.
이 기본 go channel을 사용하는 design pattern 만 알고 있으면 대부분을 고 채널을 사용할 때 응용할 수 있습니다.
var quit chan struct{}
func startLoop() {
quit := make(chan struct{})
go loop()
}
func stopLoop() {
// As mentioned by Kaedys
//close(quit)
// permits signalling everyone havins such a `case <-quit:`
// statement to be stopped at once, which might be even better.
quit <- struct{}{}
}
// BTW, you cannot call your function main, it is reserved
func loop() {
for {
select {
case <-quit:
return # better than break
default:
// do stuff. I'd call a function, for clarity:
do_stuff()
}
}
}
go channel
반응형