Rust

Concurrency Basics

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

20 mülakat soruları·
Mid-Level
1

Rust'ta yeni bir thread oluşturmak için hangi fonksiyon kullanılmalıdır?

Cevap

std::thread modülündeki thread::spawn fonksiyonu yeni bir yürütme thread'i oluşturur. Parametre olarak bir closure alır ve join() metoduyla thread'in bitmesini beklemeyi sağlayan bir JoinHandle döndürür. Bu fonksiyon, Rust'ta thread tabanlı eşzamanlı programlamanın ana giriş noktasıdır.

2

Bir JoinHandle üzerinde çağrılan join() metodu ne döndürür?

Cevap

join() metodu, T'nin thread closure'unun dönüş tipi olduğu bir Result<T, E> döndürür. Thread normal şekilde tamamlanırsa Ok(değer) elde edersiniz. Thread panic ettiyse, panic bilgisini içeren Err elde edersiniz. Bu, thread sonuçlarını güvenle almayı veya hatalarını ele almayı sağlar.

3

thread::spawn'a geçirilen bir closure'da move anahtar kelimesi neden kullanılır?

Cevap

move anahtar kelimesi, closure'ı yakaladığı değişkenleri ödünç almak yerine ownership'lerini almaya zorlar. Yeni thread, değişkenlerin tanımlandığı kapsamdan daha uzun yaşayabileceği için thread::spawn'da bu gereklidir. move olmadan derleyici, referansların thread'in tüm yaşam süresi boyunca geçerli olacağını garanti edemediği için reddeder.

4

Rust'ta Send trait'inin rolü nedir?

5

Rust'ta Sync trait'inin rolü nedir?

+17 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