고루틴 실습
learn
17 고루틴(Goroutine)
고루틴 실습

고루틴은 비동기적으로 실행되는 특성을 가지고있기 때문에 실행과 종료 시점이 모두 다릅니다. 따라서 코드에 특정 장치(대기)를 하지 않으면 코드가 꼬일 수 있습니다. 예를 들어, 고루틴이 모두 종료되기도 전에 main() 함수가 종료돼버리면 프로그램은 그냥 종료됩니다.

아직 고루틴간의 흐름을 제어하는 채널에 대해 배우지 않았기 때문에 이번 챕터에서 배운 장치를 활용해보겠습니다. 이번 챕터에서 배운 흐름을 제어하는 장치로는

  • "time" 패키지를 활용한 시간 지연 함수
  • 주먹구구식이지만 Scanln() 함수를 이용해 main() 함수 종료 대기
  • "sync" 패키지의 WaitGroup 활용 


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

Practice
  • main() 함수에서 num1, num2, result, wait을 모두 선언합니다.
  • add() 함수는 총 네 개의 포인터 변수를 매개변수로 가져옵니다.
    1. 피연산 변수 a
    2. 피연산 변수 b
    3. 연산 결과를 저장하는 변수
    4. WaitGroup을 가져오는 변수
  • Done(), Add(), Wait() 함수를 적절하게 사용합니다.
  • time.Sleep(time.Second)를 적절한 곳에 한 번만 사용합니다.


입력




출력


15

Input/Output Example
:
Blank
:
Line Break
:
Tab
Example 1
Output
15
⋇ Please keep the input and output formats carefully
Q&A
추가 자료
no files uploaded

추가 자료가 없습니다

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