인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

에반황님의 프로필 이미지
에반황

작성한 질문수

쉽고 빠르게 끝내는 GO언어 프로그래밍 핵심 기초 입문 과정

고루틴 동기화 고급

waitGroup.Done을 지연 시키는 방식

작성

·

390

0

안녕하세요. 강사님~! 여러 개념을 쉽게 설명해주셔서 재밌게 듣고 있습니다. ^^

코드를 찾아보다 다음과 같은 케이스를 보았는데요. 저 방식을 제대로 해석한 것인지 질문드립니다.

func main() {
  waitGroup := sync.WaitGroup{}
  waitGroup.Add(1)
  defer waitGroup.Done()
  // Goroutine 처리
  waitGroup.Wait()
}
  • defer는 해당 함수가 비정상 종료 되었을 때도 수행한다.

  • 내부 Goroutine에서 Done을 알리지 못했을 때도 Done 호출을 보장하기 때문에 자원 회수를 할 수 있다.

답변 1

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

네 맞습니다.

그래서 예외처리를 항상 신경써줘야 하는 것 같습니다.(defer 사용 시)

감사합니다.

에반황님의 프로필 이미지
에반황

작성한 질문수

질문하기