Rust

Concurrency Basics

Threads, thread::spawn, move closures, channels (mpsc), trait Send & Sync, thread safety

20 pertanyaan wawancaraยท
Mid-Level
1

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.

2

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.

3

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.

4

Apa peran trait Send di Rust?

5

Apa peran trait Sync di Rust?

+17 pertanyaan wawancara

Kuasai Rust untuk wawancara berikutnya

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

Mulai gratis