28 Mayıs 2013 Salı

NodeJS ve Non-Blocking I/O


NodeJS ile birlikte sık sık duyduğumuz kavramramlardan biri, Non-Blocking I/O... 

Bu kavramı sizlere örnek vererek anlatmaya çalışacağım. Diyelim ki, yazdığınız programın bir yerlerinde ilk önce kullanıcı bilgilerini sonra da bu kullanıcıların yorumlarını veritabanından çekip ekranda bilgisini basıyorsunuz. Bu işi aşağıdaki gibi iki yolla yapabiliriz.


1. Yol:

Yükleniyor...

Çıktı:

Kullanıcı bilgileri alınıyor...
Kullanıcı yorumları alınıyor...
Kullanıcı bulundu: johndoe
Kullanıcıya ait yorumlar bulundu: Güzel paylaşım

2. Yol:
Yükleniyor...


Çıktı:

Kullanıcı bilgileri alınıyor...
Kullanıcı bulundu: johndoe
Kullanıcı yorumları alınıyor...
Kullanıcıya ait yorumlar bulundu: Güzel paylaşım

Şimdi iki kodu ve çıktılarını ele alalım:

İlk kodda non-blocking I/O tekniği için callback(bunun için ayrı bir yazı yazmayı düşünüyorum) mekanizması kullanıldı. Kullanıcı bilgisinin alınması beklenmeden bir sonraki satıra geçti ve çalışmaya devam etti. Kullanıcı ve yorumların alınması beklenmeden çalışma işlemi devam ettiği için ilk önce bilgi mesajları ekrana bastırıldı sonradan kullanıcı ve yorum bilgileri ekrana getirildi.

İkinci kodda ise normal kodlama tekniği kullanıldı. Bu yüzden kod çalışırken 7. satıra geldiğinde ilk önce kullanıcı bilgisinin alınması bekleniyor sonra akışına devam ediyor. Aynı şey yorum bilgisi alırken de geçerli. 

NodeJS'teki bu özellik sayesinde uzun süren işlemlerin bitmesini beklemeden kodun geri kalan kısmı da çalıştırılabiliyor. Veritabanı işlemleri, dosya işlemleri, ve resim işlemleri bazen uzun süren işlemlerde bu teknik tercih edilebilir.

Bir sonraki yazıda görüşmek üzere...  

Hiç yorum yok:

Yorum Gönder