İçeriğe geç
parazade

Asenkron Programlama Nedir?

İngilizce: Asynchronous Programming

Yayın: · Son güncelleme:

Asenkron Programlama Nedir? Kısaca

Asenkron programlama, uzun süren bir işlemi beklerken programın diğer işlere devam etmesini sağlayan yaklaşımdır. Ağ istekleri, dosya okuma ve veritabanı sorguları gibi bekleme gerektiren işlerde uygulamanın donmasını önler.

Asenkron Programlama nedir?
İçindekiler
  1. Asenkron programlama nedir?
  2. Neden gerekir?
  3. Nasıl uygulanır?
  4. Nelere dikkat etmeli?

Asenkron programlama nedir?

Asenkron programlama, bir işlemin sonucunu beklerken programın durmadan başka işlere geçebildiği yaklaşımdır. İşlem bitince program haberdar edilir ve sonuçla devam eder. Karşıtı olan senkron yaklaşımda ise her satır bir öncekinin bitmesini bekler.

Neden gerekir?

Sebep beklemedir. Bilgisayar için bir sunucudan yanıt beklemek, saniyede milyonlarca işlem yapabilen bir işlemcinin boşta oturması anlamına gelir. Bir hava durumu uygulaması veriyi senkron biçimde çekseydi, yanıt gelene kadar ekran donar, butonlar tepki vermezdi. Asenkron yaklaşımda istek gönderilir, arayüz çalışmaya devam eder ve veri gelince ekran güncellenir.

Sunucu tarafında da fark büyüktür, hatta çoğu zaman daha belirgindir. Asenkron çalışan bir web sunucusu, bir kullanıcının veritabanı sorgusunu beklerken diğer kullanıcıların isteklerini işleyebilir.

Nasıl uygulanır?

Dillerin çoğu bu iş için üç kuşak araç sunar. İlk kuşak callback'tir: işlem bitince çağrılacak fonksiyonu verirsiniz. Ardından Promise gelir; ileride gelecek bir sonucu temsil eden nesnedir. En yaygın modern yöntem ise async/await yazımıdır ve asenkron kodu sıradan, yukarıdan aşağı okunan koda benzetir.

Nelere dikkat etmeli?

Asenkron kodda işlemlerin hangi sırayla biteceği garanti değildir. İki isteği aynı anda gönderdiyseniz, ikincisi önce dönebilir. Hata yakalamayı da ihmal etmeyin; yakalanmayan bir asenkron hata sessizce kaybolabilir. Pratik bir başlangıç için bir API çağrısını fetch ve async/await ile yazıp hata durumunu ekrana yazdırmayı deneyin.

Sıkça Sorulan Sorular

Asenkron ve paralel programlama aynı şey mi?

Hayır. Asenkron programlama beklemeyi verimli kullanmakla ilgilidir ve tek bir thread üzerinde de çalışabilir. Paralel programlama ise birden fazla işi aynı anda farklı işlemci çekirdeklerinde yürütür.

Hangi dillerde asenkron programlama yapılır?

JavaScript, Python, C#, Kotlin, Rust ve Dart gibi pek çok dil asenkron yapılar sunar. Çoğunda async ve await anahtar kelimeleri kullanılır.

İlgili terimler