동기 채널 실습
배우기
18 채널(Channel)
동기 채널 실습

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


동기 채널은 버퍼를 사용하지 않는 채널로서 한 개의 데이터만 송/수신할 수 있습니다. 따라서 송/수신이 여러번 반복되는 루틴에서는 효율적이지 못합니다. 이를 확인하는 코드를 직접 작성해봅니다.

실습 내용
  • 버퍼가 없는 bool형 채널을 생성합니다. 이 채널은 송/수신이 완료됐음을 알리는 역할을 합니다.
  • main() 함수 안에 송신 루틴인 익명 함수를 선언합니다. 
    • 익명 함수 안에 for문으로 채널에 'true'를 20번 송신합니다.
    • 송신이 완료되면 "송신 루틴 완료"를 출력합니다.(for문 밖에)
  • 익명 함수 다음에 for문으로 채널을 20번 수신합니다. 수신할 때마다 "수신한 데이터 : i"를 출력합니다
  • "송신 루틴 완료"가 출력되는지 확인해보고 만약 출력되지 않는다면 왜인지 생각해봅니다.
질문하기
추가 자료
no files uploaded

추가 자료가 없습니다

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