Rust

Tokio & Async I/O

Tokio runtime, async tasks, select!, join!, timeout, tokio::spawn, async I/O file/jaringan

22 pertanyaan wawancaraยท
Senior
1

Apa peran utama runtime Tokio dalam aplikasi Rust asinkron?

Jawaban

Runtime Tokio menyediakan executor yang melakukan poll terhadap futures hingga selesai. Ia juga mengelola scheduler multi-thread (secara default) untuk mendistribusikan task ke beberapa thread OS, serta reactor untuk operasi I/O asinkron. Tanpa runtime, futures Rust tidak melakukan apa pun karena bersifat lazy secara default.

2

Bagaimana cara menginisialisasi runtime Tokio dengan macro #[tokio::main]?

Jawaban

Macro #[tokio::main] mengubah fungsi async main() menjadi titik masuk sinkron yang membuat runtime Tokio multi-thread dan menjalankan fungsi async. Macro ini secara otomatis menghasilkan boilerplate yang diperlukan untuk membuat runtime dan memblokir hingga future utama selesai.

3

Apa perbedaan antara #[tokio::main] dan #[tokio::main(flavor = "current_thread")]?

Jawaban

Secara default, #[tokio::main] membuat runtime multi-thread yang mendistribusikan task ke sebuah pool worker thread. Dengan flavor = "current_thread", runtime menjalankan semua task hanya pada thread utama, yang berguna untuk pengujian, aplikasi sederhana, atau ketika berbagi data antar thread harus dihindari.

4

Apa yang dilakukan tokio::spawn() dan tipe apa yang dikembalikannya?

5

Mengapa futures yang diteruskan ke tokio::spawn() harus 'static?

+19 pertanyaan wawancara

Kuasai Rust untuk wawancara berikutnya

Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.

Mulai gratis