𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗦𝗲𝗻𝗸𝗿𝗼𝗻 𝘃𝗲 𝗔𝘀𝗲𝗻𝗸𝗿𝗼𝗻
JavaScript tek bir iş parçacığı (thread) üzerinde çalışır. Bu, her seferinde yalnızca bir işlem gerçekleştirdiği anlamına gelir. Verimli kod yazmak için görevleri nasıl yönettiğini anlamanız gerekir.
Senkron JavaScript
Senkron kod satır satır çalışır. Her görev, bir önceki görevin bitmesini bekler. Buna "blocking" (engelleme) denir. Eğer bir görev uzun sürerse, tüm program durur.
- Yürütme: Sabit sıra.
- Engelleme (Blocking): Evet.
- Karmaşıklık: Basit.
- En iyisi: Basit, ardışık görevler.
Asenkron JavaScript
Asenkron kod bağımsız olarak çalışır. Görevler beklerken diğer kodları engellemez. Buna "non-blocking" (engellemeyen) denir. Görev arka planda başlar ve tamamlandığında sizi bilgilendirir.
- Yürütme: Görevler bağımsız çalışır.
- Engelleme (Blocking): Hayır.
- Karmaşıklık: Daha yüksek.
- En iyisi: API çağrıları, zamanlayıcılar ve dosya işlemleri.
Asenkron görevleri yönetmenin üç yolu:
- Callbacks: Bir görev tamamlandıktan sonra çalışan bir fonksiyon.
- Promises: Bir işlemin tamamlanmasını veya başarısızlığını temsil eden bir nesne.
- Async/Await: En temiz yöntemdir. İş parçacığını engellemeden asenkron kodun senkron kod gibi görünmesini sağlar.
Yaygın asenkron işlemler:
- Zamanlayıcılar:
setTimeout() - API çağrıları:
fetch() - Dosya okuma:
readFile() - Kullanıcı olayları:
addEventListener()
Bunu Event Loop sağlar. Aynı anda birden fazla görevi yönetmek için Call Stack, Web API'leri ve Callback Queue kullanır.
Özet:
- Senkron: Birbiri ardına. Yürütmeyi engeller.
- Asenkron: Bağımsız görevler. Engellemez.
- JavaScript varsayılanı: Senkron.
Source: https://www.geeksforgeeks.org/javascript/synchronous-and-asynchronous-in-javascript/ Source: https://www.w3schools.com/js/js_asynchronous.asp Source: https://medium.com/@mohdtalib.dev/what-is-synchronous-and-asynchronous-in-javascript-07adb7b4cc5f
Full post: https://dev.to/raja_b_0c9d242e2c26cf063b/javascript-synchronous-and-asynchronous-2a69