Rust

Tokio & Async I/O

Tokio runtime, async tasks, select!, join!, timeout, tokio::spawn, async dosya/ağ I/O

22 mülakat soruları·
Senior
1

Asenkron bir Rust uygulamasında Tokio runtime'ının temel rolü nedir?

Cevap

Tokio runtime'ı, future'ları tamamlanana kadar poll eden bir executor sağlar. Ayrıca task'ları birden fazla OS thread'ine dağıtmak için bir çok thread'li scheduler (varsayılan olarak) ve asenkron I/O işlemleri için bir reactor yönetir. Bir runtime olmadan, Rust future'ları varsayılan olarak lazy oldukları için hiçbir şey yapmaz.

2

Tokio runtime'ı #[tokio::main] makrosuyla nasıl başlatılır?

Cevap

#[tokio::main] makrosu, bir async main() fonksiyonunu, çok thread'li bir Tokio runtime'ı oluşturan ve async fonksiyonu çalıştıran senkron bir giriş noktasına dönüştürür. Bu makro, runtime'ı oluşturmak ve ana future tamamlanana kadar bloklamak için gereken boilerplate'i otomatik olarak üretir.

3

#[tokio::main] ile #[tokio::main(flavor = "current_thread")] arasındaki fark nedir?

Cevap

Varsayılan olarak, #[tokio::main] task'ları bir worker thread havuzuna dağıtan çok thread'li bir runtime oluşturur. flavor = "current_thread" ile runtime tüm task'ları yalnızca ana thread üzerinde çalıştırır; bu, testler, basit uygulamalar veya thread'ler arasında veri paylaşımının önlenmesi gereken durumlar için kullanışlıdır.

4

tokio::spawn() ne yapar ve hangi tipi döndürür?

5

tokio::spawn()'a geçirilen future'ların neden 'static olması gerekir?

+19 mülakat soruları

Bir sonraki mülakatın için Rust'de uzmanlaş

Tüm sorulara, flashcards'a, teknik testlere, code review alıştırmalarına ve mülakat simülatörlerine eriş.

Ücretsiz başla