비동기 채널

여러 크레이트에서 비동기 채널을 지원합니다. 예를 들어 tokio에서는 아래와 같이합니다.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

  • 채널 크기를 3으로 변경하고 동작이 어떻게 바뀌는지 확인하세요.

  • 비동기 채널을 사용하기 위한 인터페이스는 오전 과정에서 배운 sync 채널과 비슷합니다.

  • std::mem::drop 호출하는 줄을 삭제해 보세요. 어떤 결과가 나타나나요? 이유가 무엇인가요?

  • Flume 크레이트에는 syncasync, sendrecv를 모두 구현하는 채널이 있습니다. 이것은 IO와 CPU 처리 작업이 많은 복잡한 애플리케이션을 구현할 때 매우 유용합니다.

  • async 채널을 사용하는 것이 더 좋은 이유는 이를 다른 future와 결합하여 복잡한 제어 흐름을 만들 수 있기 때문입니다.