고루틴 실습2
배우기
18 채널(Channel)
고루틴 실습2

고루틴 챕터에서 비동기 함수 실행을 연습해보기 위해 고루틴 연습 실습을 해봤습니다. 그런데 아무런 장치가 없이 그냥 고루틴을 실행하면 실행 흐름이 제각각이라 일종의 장치가 필요하다고 했습니다. 그래서 사용한 장치는 WaitGroup과 time.Sleep()과 같은 함수였습니다. 이는 단지 수동적인 코드 흐름 지연과 같은 방법입니다. 이는 고루틴과 데이터 흐름이 많아지면 절대 직관적으로 해결할 수 없습니다.

따라서 채널 챕터에서 채널을 학습하고 고루틴간 데이터 송/수신과 데이터 흐름을 제어하는 것을 알았습니다. 이전 챕터에서 '고루틴 연습'에 채널 기능을 넣어 주먹구구식 고루틴 대기 흐름을 수정해봅니다.

main() 함수에서 선언된 두 변수를 포인터 변수로 받아와 add() 함수에서 덧셈 연산하고 main() 함수에서 결괏값을 출력하는 실습을 해봅니다.


아주 간단한 코드지만 채널에 대한 정확한 이해를 하지 않으면 굉장히 헷갈릴 수 있습니다.

실습 내용
  • main() 함수에서 num1, num2 int형 변수를 선언하고 int형 채널을 생성합니다.
  • 사용자에게 num1과 num2를 입력받습니다.
  • add() 함수는 main()에서 생성한 채널과 num1, num2를 전달 인자로 호출합니다.
  • add() 함수에서는 전달받은 두 변수를 더하고 채널에 송신합니다.
  • main() 함수에서 채널 수신 및 결괏값을 출력합니다.
  • add()는 선언 함수입니다. main() 함수 밖에 선언해서 main() 함수에서 호출하는 것입니다.
  • hint : 고루틴이 몇 개 필요할 지 잘 생각해보세요.


입력


첫 번째 줄에 덧셈할 두 숫자를 띄어쓰기 해서 입력합니다.


출력


덧셈의 결괏값을 출력합니다.

입/출력 예시
:
공백
:
줄 바꿈
:
예시 1
입력
105
출력
15
⋇ 입출력 형식을 잘 지켜주세요
질문하기
추가 자료
no files uploaded

추가 자료가 없습니다

여기서 새로운 학습 자료를 확인하세요!
선생님이 추가한 자료들을 바로 확인할 수 있어요.