
Tokio & Async I/O
Tokio runtime, async tasks, select!, join!, timeout, tokio::spawn, async 파일/네트워크 I/O
22 면접 질문·
Senior
1비동기 Rust 애플리케이션에서 Tokio runtime의 주요 역할은 무엇입니까?
1
비동기 Rust 애플리케이션에서 Tokio runtime의 주요 역할은 무엇입니까?
답변
Tokio runtime은 future가 완료될 때까지 poll하는 executor를 제공합니다. 또한 여러 OS thread에 태스크를 분산시키는 멀티스레드 scheduler(기본값)와 비동기 I/O 작업을 위한 reactor도 관리합니다. runtime이 없으면 Rust future는 기본적으로 lazy하기 때문에 아무 일도 하지 않습니다.
2#[tokio::main] 매크로로 Tokio runtime을 초기화하려면 어떻게 해야 합니까?
2
#[tokio::main] 매크로로 Tokio runtime을 초기화하려면 어떻게 해야 합니까?
답변
#[tokio::main] 매크로는 async main() 함수를 멀티스레드 Tokio runtime을 생성하고 async 함수를 실행하는 동기 진입점으로 변환합니다. 이 매크로는 runtime을 생성하고 메인 future가 완료될 때까지 블록하는 데 필요한 boilerplate를 자동으로 생성합니다.
3#[tokio::main]과 #[tokio::main(flavor = "current_thread")]의 차이점은 무엇입니까?
3
#[tokio::main]과 #[tokio::main(flavor = "current_thread")]의 차이점은 무엇입니까?
답변
기본적으로 #[tokio::main]은 worker thread 풀에 태스크를 분산하는 멀티스레드 runtime을 생성합니다. flavor = "current_thread"를 사용하면 runtime이 모든 태스크를 메인 thread에서만 실행하는데, 이는 테스트, 간단한 애플리케이션 또는 thread 간 데이터 공유를 피해야 할 때 유용합니다.
4
tokio::spawn()은 무엇을 하며 어떤 타입을 반환합니까?
5
tokio::spawn()에 전달되는 future가 'static이어야 하는 이유는 무엇입니까?
+19 면접 질문
기타 Rust 면접 주제
Rust 기초
Junior
25개 질문Ownership & Borrowing
Junior
22개 질문Structs & Enums
Junior
20개 질문에러 처리
Junior
18개 질문컬렉션
Junior
20개 질문모듈과 패키지
Junior
18개 질문Traits
Mid-Level
22개 질문Generics
Mid-Level
20개 질문Lifetimes
Mid-Level
20개 질문Iterators & Closures
Mid-Level
22개 질문Smart Pointers
Mid-Level
22개 질문Concurrency Basics
Mid-Level
20개 질문async/await
Mid-Level
22개 질문Testing
Mid-Level
18개 질문Cargo & Ecosystem
Mid-Level
18개 질문Pattern Matching
Mid-Level
18개 질문매크로
Mid-Level
20개 질문Serde와 직렬화
Mid-Level
20개 질문Unsafe Rust
Senior
20개 질문고급 트레잇
Senior
22개 질문고급 lifetime
Senior
20개 질문Type System
Senior
20개 질문성능 최적화
Senior
20개 질문Memory Management
Senior
20개 질문Web Frameworks
Senior
22개 질문Database Integration
Senior
20개 질문Rust 디자인 패턴
Senior
20개 질문