17 고루틴(Goroutine)
고루틴 실습
고루틴은 비동기적으로 실행되는 특성을 가지고있기 때문에 실행과 종료 시점이 모두 다릅니다. 따라서 코드에 특정 장치(대기)를 하지 않으면 코드가 꼬일 수 있습니다. 예를 들어, 고루틴이 모두 종료되기도 전에 main() 함수가 종료돼버리면 프로그램은 그냥 종료됩니다.
아직 고루틴간의 흐름을 제어하는 채널에 대해 배우지 않았기 때문에 이번 챕터에서 배운 장치를 활용해보겠습니다. 이번 챕터에서 배운 흐름을 제어하는 장치로는
- "time" 패키지를 활용한 시간 지연 함수
- 주먹구구식이지만 Scanln() 함수를 이용해 main() 함수 종료 대기
- "sync" 패키지의 WaitGroup 활용
main() 함수에서 선언된 두 변수를 포인터 변수로 받아와 add() 함수에서 덧셈 연산하고 main() 함수에서 결괏값을 출력하는 실습을 해봅니다.