위키득계정 ↗
기술

Tokio

Tokio기술
주요 언어
Rust
소프트웨어 유형
비동기 런타임
주요 구성
스케줄러와 리액터 및 소켓
스케줄링 방식
다중 스레드 작업 훔치기
Tokio는 Rust에서 비동기 응용을 실행하기 위한 런타임이다. 작업 스케줄러와 운영체제 사건을 처리하는 리액터 및 비동기 네트워크 소켓을 제공해 이벤트 기반의 논블로킹 입출력 프로그램을 구성한다.

비동기 작업을 실행하는 기반

응용이 표현한 비동기 작업을 실행하는 런타임 구성 요소를 제공한다. 다중 스레드 스케줄러는 작업 훔치기 방식을 사용해 실행할 작업을 배분한다. 응용의 비동기 논리와 실제 스레드에서 진행되는 실행을 연결하는 역할이다.

운영체제 사건과 네트워크

리액터는 epoll과 kqueue 및 IOCP 같은 운영체제의 이벤트 큐를 기반으로 한다. TCP와 UDP의 비동기 소켓을 제공해 준비된 입출력에 따라 응용을 진행한다. 작업 실행과 사건 통지를 함께 묶어 비동기 프로그램의 기반을 이룬다.

주변 네트워크 생태계

Tokio 프로젝트는 런타임 외에도 웹 응용과 HTTP 및 gRPC와 진단 등의 라이브러리를 관리한다. 런타임은 이들 상위 기능의 실행 기반으로 활용된다. 응용이 사용하는 프로토콜 기능과 비동기 실행을 맡는 계층을 구분할 수 있다.

관련 문서

Smol 런타임 / libuv / Boost Asio / Rust / gRPC / 비동기 프로그래밍