비동기 채널 실습
learn
undefined undefined
비동기 채널 실습

채널을 이용한 고루틴을 실습하기는 쉽지 않습니다. 왜냐하면 고루틴은 동시에 실행되기 때문에 결괏값이 어떤 순서로 출력될지 예측할 수 없기 때문입니다. 따라서 입/출력 값을 가지고 정답을 채점하지 않고 코드를 직접 작성하고 채널과 고루틴의 특성을 이해하는 방향으로 실습해봅니다.


동기 채널과 다르게 비동기 채널은 버퍼를 이용해 수신 채널이 모든 데이터를 수신하기 전에 버퍼에 데이터를 송신해버리고 자기 일을 할 수 있습니다. 따라서 송/수신이 여러번 반복되어도 버퍼를 활용해 효율적인 작업 처리가 가능합니다. 이를 확인하기 위해 동기 채널 실습 코드 내용을 그대로 사용해서 버퍼만 추가해보고 결괏값이 어떻게 출력되는지 확인해봅니다.


Practice
  • 버퍼 50개인 bool형 채널을 생성합니다. 이 채널은 송/수신이 완료됐음을 알리는 역할을 합니다.
  • main() 함수 안에 송신 루틴인 익명 함수를 선언합니다. 
    • 익명 함수 안에 for문으로 채널에 'true'를 20번 송신합니다.
    • 송신이 완료되면 "송신 루틴 완료"를 출력합니다.(for문 밖에)
  • 익명 함수 다음에 for문으로 채널을 20번 수신합니다. 수신할 때마다 "수신한 데이터 : i"를 출력합니다
  • "송신 루틴 완료"가 출력되는지 확인해보고 왜 데이터가 모두 수신되기 전에 출력되는지 생각해봅시다.
Q&A
추가 자료
no files uploaded

추가 자료가 없습니다

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