더북(TheBook)

런타임은 스레드를 생성하고, 퓨처를 폴링하고, 완료까지 담당한다. 또한, 작업을 커널에 전달하고 비동기 커널 API를 사용해 병목 현상이 발생하지 않도록 하는 역할도 한다. Tokio는 운영체제 커널과 비동기 통신하기 위해 Mio 크레이트(https://github.com/tokio-rs/mio)를 사용한다. 개발자인 당신은 아마 Mio의 코드를 건드리지는 않을 것이다. 그러나 러스트로 웹 서버를 개발할 때 어떤 타입의 크레이트와 추상화 레이어를 프로젝트로 가져오는지 정도는 아는 것이 좋다.

그림 2-11에서 볼 수 있듯이 런타임은 웹 서비스에서 상당히 큰 역할을 한다. 코드를 async로 표시하면 컴파일러는 그 코드를 런타임에 전달한다. 그런 다음 구현에 따라 작업을 얼마나 빠르고 정확하며 에러 없이 실행할 수 있는지를 결정한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.