Async/Await'e Giriş
Eşzamansız ve engellemeyen kod yazmak için `async` işlevlerinin ve `await` ifadelerinin temellerini öğrenin.
Async/Await'e Giriş, CoddyKit'te ücretsiz bir Learn Rust Coding dersidir. Bu, 3 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn Rust Coding öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn Rust Coding kursu toplamda 3 dersten oluşur.
Neden Eşzamansız Programlama?
Programlamada görevler çoğu zaman beklemeyi gerektirir. Bu, bir dosyanın yüklenmesini, bir ağ isteğinin tamamlanmasını veya bir veritabanı sorgusunun sonuç döndürmesini beklemek olabilir.
Geleneksel olarak programlar bu beklemeler sırasında bekletilir; yani görev tamamlanana kadar diğer tüm işlemleri duraklatırlar. Bu durum uygulamaları yavaşlatabilir ve yanıt veremez hâle getirebilir.
Kod Beklediğinde...
Beklemeli bir işlemin şu basit örneğini inceleyin. Program, ikinci mesajı yazdırmadan önce 2 saniye duraklayacaktır.
Çalıştırmayı deneyin:
use std::thread;
use std::time::Duration;
fn main() {
println!("Starting a blocking task...");
thread::sleep(Duration::from_secs(2)); // This blocks!
println!("Blocking task finished!");
}Beklemenin Maliyeti
Önceki örnekte programın tamamı bekledi. Bu bir web sunucusu olsaydı, bir kullanıcının isteği veritabanını beklerken diğer kullanıcılara hizmet verilemeyeceği anlamına gelirdi!
Eşzamansız programlama, programınızın uzun süren bir görevi başlatıp beklemek yerine başka işlere geçmesini sağlar. Uzun görev hazır olduğunda program bu görevi sürdürebilir.
Rust'ın Eşzamansız Yaklaşımı
Rust, eşzamansız programlama için güçlü dil özellikleri sunar: async ve await anahtar sözcükleri.
asyncişlevleri, duraklatılıp sürdürülebilen özel işlevlerdir..await, tüm programı bekletmeden başka bir eşzamansız görevin tamamlanmasını beklemek için birasyncişlevinin içinde kullanılır.
`async` İşlevlerini Tanımlama
async anahtar sözcüğünü fn'den önce ekleyerek eşzamansız bir işlev bildirirsiniz. Bir async işlevi her zaman bir Future döndürür.
Future, henüz hazır olmayabilecek bir değerdir. Sonunda bir sonuç üretecek hesaplamayı temsil eder.
async fn my_async_task() -> u32 {
// This task will eventually return 42
42
}`.await` ile Duraklatma
.await anahtar sözcüğü, eşzamansız programlamayı beklemesiz hâle getirir. Bir Future üzerinde .await kullandığınızda async işleviniz şunları yapar:
- Kendi yürütmesini duraklatır.
- Programın başka işler yapmasına izin verir.
- Beklenen Future hazır olduğunda yürütmeye devam eder.
Bu, başka bir görev tamamlanırken geçerli görevinize duraklatma düğmesine basmaya benzer.
Eşzamansız Kodu Çalıştırma: Yürütücüler
Bir async işlevi bir Future döndürür, ancak içindeki kodu hemen çalıştırmaz. Future'lar tembeldir.
Bir async işlevini gerçekten çalıştırmak ve Future'ını yürütmek için bir yürütücüye ihtiyacınız vardır. Basit örneklerde, bir Future'ı geçerli iş parçacığında tamamlanana kadar çalıştıran futures::executor::block_on kullanılabilir.
İlk `async`/`await` Programınız
async, await ve basit bir yürütücünün birlikte nasıl çalıştığını burada görebilirsiniz. Eşzamansız süreci başlatmak için main içinde block_on kullanıldığına dikkat edin.
Bu örnek, main işlevinin iş parçacığını bekletmeden eşzamansız bir gecikmeyi simüle eder (kavramsal olarak; block_on Future tamamlanana kadar kendisi bekletir, ancak eşzamansız görev yürütmeyi bırakır).
use futures::executor::block_on;
use std::time::Duration;
async fn learn_and_wait() {
println!("Learning asynchronously...");
// Simulate an async operation that takes time
// In a real app, this would be an I/O op
tokio::time::sleep(Duration::from_secs(1)).await;
println!("Finished learning!");
}
fn main() {
println!("Starting main function.");
block_on(learn_and_wait());
println!("Main function finished.");
}`Future` Özelliğini Anlama
async fn my_func() yazdığınızda Rust, bunu aslında Future özelliğini uygulayan bir durum makinesine dönüştürür.
Future özelliğinin poll adlı bir ana yöntemi vardır. Yürütücü, görevin ilerlemeye hazır olup olmadığını denetlemek için bu yöntemi tekrar tekrar çağırır. Bir Future üzerinde .await kullanıldığında, tamamlanana kadar başka bir Future'ı yoklaması yürütücüye bildirilir.
Hızlı Kontrol: Async/Await Temelleri
async ve await temellerini öğrendiniz. Şimdi temel rollerini belirleyip belirleyemediğinizi görelim.
Tekrar ve Sonraki Adımlar
Harika iş çıkardınız! Rust'ta eşzamansız programlamaya ilk adımlarınızı attınız.
- Eşzamanlı kodun programı beklettiğini gördük.
- Eşzamansız kod, görevlerin birbirini bekletmeden eşzamanlı çalışmasına olanak tanır.
asyncanahtar sözcüğü, bir Future döndüren eşzamansız bir işlev bildirir..awaitanahtar sözcüğü, bir Future hazır olana kadarasyncişlevini duraklatır.- Future'ları çalıştırmak için
block_ongibi bir yürütücü gerekir.
Sırada, Rust'ta gerçek dünyaya yönelik eşzamansız uygulamalar geliştirmek için güçlü bir çalışma zamanı ve ekosistem olan Tokio'yu inceleyeceğiz!
Yapay zeka eğitmeniyle Rust öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 39
- Dersler
- 144
Sıkça Sorulan Sorular
“Async/Await'e Giriş” dersi ücretsiz mi?
Evet — “Async/Await'e Giriş” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn Rust Coding kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn Rust Coding kursu toplamda 3 dersten oluşur.
“Async/Await'e Giriş” dersinde ne öğreneceğim?
Eşzamansız ve engellemeyen kod yazmak için `async` işlevlerinin ve `await` ifadelerinin temellerini öğrenin. Learn Rust Coding ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Learn Rust Coding öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn Rust Coding, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 1. dersidir.
“Async/Await'e Giriş” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Learn Rust Coding dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn Rust Coding dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Async/Await'e Giriş
- Tokio ile Eşzamansız Uygulamalar Geliştirme
- Future'lar ve Görevlerle Çalışma