Onur Dayıbaşı

CV
none

Call Stack Nasıl Çalışır ?

Kodun işletilmesini anlatmak oldukça zor. Referanslar bölümündeki video bu konuyu çok iyi anlatıyor. Ben yinede yazıyla anlatayım dersem. Aşağıdaki kodda sayının karesini print eden bir kod var

  • main() ile JS kodu çalıştırılıyor ve printSquare(4) fonksiyonu çağrılıyor

Call Stack Görselleştirme

  • buda kendi içerisindeki çalıştırılacak fonksiyonları sırası ile stack taşıyor. main → printSquare → square → multiply fonksiyonlarını stack yüklüyor.

Call Stack Görselleştirme -2

  • LIFO (Son giren ilk çıkar mantığı ile son fonksiyona geldi ise artık bunları işleterek stack siler. Özetle kod blokları işletildikçe bu stack dolar ve boşalır.

  • Peki stack alanını aşacak şekilde stack dolarsa özellikle foo =() → foo() gibi recursive kod çağrımlarında sistem stack boyutunu aştığınıza dair uyarı verecektir.

Maximum call stack size exceed

Yukarıda gördüğünüz gibi CallStack yapısı oldukça basit. Bir seferde sadece bir işlem yapılabiliyor. Peki nasıl oluyorda bizim tarayıcılar aynı anda birden fazla işlemi yapabiliyor. İşte burda Asenkron çalışma ihtiyacı doğuyor ve bunun için ekstra mekanizmalara ihtiyacımız var

Referanslar