18 채널(Channel)
고루틴 실습2
고루틴 챕터에서 비동기 함수 실행을 연습해보기 위해 고루틴 연습 실습을 해봤습니다. 그런데 아무런 장치가 없이 그냥 고루틴을 실행하면 실행 흐름이 제각각이라 일종의 장치가 필요하다고 했습니다. 그래서 사용한 장치는 WaitGroup과 time.Sleep()과 같은 함수였습니다. 이는 단지 수동적인 코드 흐름 지연과 같은 방법입니다. 이는 고루틴과 데이터 흐름이 많아지면 절대 직관적으로 해결할 수 없습니다.
따라서 채널 챕터에서 채널을 학습하고 고루틴간 데이터 송/수신과 데이터 흐름을 제어하는 것을 알았습니다. 이전 챕터에서 '고루틴 연습'에 채널 기능을 넣어 주먹구구식 고루틴 대기 흐름을 수정해봅니다.
main() 함수에서 선언된 두 변수를 포인터 변수로 받아와 add() 함수에서 덧셈 연산하고 main() 함수에서 결괏값을 출력하는 실습을 해봅니다.
아주 간단한 코드지만 채널에 대한 정확한 이해를 하지 않으면 굉장히 헷갈릴 수 있습니다.