
Concurrency Basics
Threads, thread::spawn, move closures, channels (mpsc), trait Send & Sync, thread safety
1Fungsi mana yang harus digunakan untuk membuat thread baru di Rust?
Fungsi mana yang harus digunakan untuk membuat thread baru di Rust?
Jawaban
Fungsi thread::spawn dari modul std::thread membuat thread eksekusi baru. Fungsi ini menerima sebuah closure sebagai parameter dan mengembalikan JoinHandle yang memungkinkan menunggu thread selesai menggunakan metode join(). Fungsi ini adalah titik masuk utama untuk pemrograman konkuren berbasis thread di Rust.
2Apa yang dikembalikan oleh metode join() ketika dipanggil pada JoinHandle?
Apa yang dikembalikan oleh metode join() ketika dipanggil pada JoinHandle?
Jawaban
Metode join() mengembalikan Result<T, E> di mana T adalah tipe kembalian dari closure thread. Jika thread selesai secara normal, Anda mendapatkan Ok(nilai). Jika thread mengalami panic, Anda mendapatkan Err yang berisi informasi panic. Ini memungkinkan pengambilan hasil thread atau penanganan errornya dengan aman.
3Mengapa menggunakan kata kunci move dengan closure yang diteruskan ke thread::spawn?
Mengapa menggunakan kata kunci move dengan closure yang diteruskan ke thread::spawn?
Jawaban
Kata kunci move memaksa closure untuk mengambil ownership dari variabel yang ditangkapnya alih-alih meminjamnya. Ini penting dengan thread::spawn karena thread baru bisa hidup lebih lama daripada scope tempat variabel didefinisikan. Tanpa move, compiler menolak karena tidak dapat menjamin bahwa referensi akan valid selama seluruh masa hidup thread.
Apa peran trait Send di Rust?
Apa peran trait Sync di Rust?
+17 pertanyaan wawancara
Topik wawancara Rust lainnya
Dasar-Dasar Rust
Ownership & Borrowing
Structs & Enums
Penanganan Error
Collections
Module & Package
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macro
Serde & Serialisasi
Unsafe Rust
Trait Lanjutan
Lifetime Lanjutan
Type System
Tokio & Async I/O
Optimasi Performa
Memory Management
Web Frameworks
Database Integration
Design Pattern Rust
Kuasai Rust untuk wawancara berikutnya
Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.
Mulai gratis