SORU
21 Mayıs 2012, PAZARTESİ


Nodejs Olay Döngüsü

İçten nodejs mimarisinde iki olay döngüsü var mı?

  • /libuv libev
  • v8 javascript olay döngüsü

Bir G/Ç isteği üzerine düğüm isteği sırayla olayları libev kullanarak veri durumu bildirir ve sonunda bu olaylar v8 olay döngü geri çağrıları kullanarak işlenen libeio için sıra mı?

Temelde, Nasıl libev ve libeio nodejs yapısına entegre?

Herhangi bir belge nodejs net bir resim İç Mimarlık vermek için vardır?

CEVAP
18 HAZİRAN 2012, PAZARTESİ


Şahsen node.js & v8 kaynak kodunu okuyorum.

Yerel modülleri yazmak için node.js mimarlık anlamaya çalışırken senin gibi benzer bir sorun girdim.

Burada node.js benim anlayış ve bu gönderiyorum ne pist dışında biraz da olabilir.

  1. Libev aslında içten basit olay döngü işlemleri gerçekleştirmek için node.js çalışan olay döngü. Aslında *nix sistemleri için yazılmış. Libev işlemi için henüz optimize edilmiş basit olay bir döngü çalıştırmak için sağlar. Hakkında daha fazla libev here okuyabilirsiniz.

  2. LibEio giriş çıkış zaman uyumsuz olarak gerçekleştirmek için bir kütüphane. Dosya tanımlayıcısı, veri işleyicileri, yuva vb işler. Burada here hakkında daha fazla bilgi edinebilirsiniz.

  3. LibUv libeio üst , libev, c-ares ( DNS ) ve ıocp (windows için asyncronous-ıo) soyut bir katmandır. LibUv gerçekleştiren kullanımını sağlar ve ıo ve olay havuzda olayları yönetir. ( libeio havuzu durumunda ). LibUv Ryan Dahl's tutorial kontrol etmelisiniz. Bu senin için daha mantıklı libUv kendini nasıl çalıştığı hakkında başlayacak ve daha sonra node.js libuv ve v8 üstünde nasıl çalıştığını anlayacaksınız.

Sadece javascript olay döngü anlamak için bu videoları izlerken düşünmelisiniz

Libeio zaman uyumsuz modüller oluşturmak için node.js ile nasıl kullanıldığını görmek için this example görmelisiniz.

Temelde ne olur içinde node.js bu v8 döngü çalışır ve kolları tüm javascript parçalarının yanı sıra C modülleri [ zaman onlar çalışan bir ana konu ( resmi belgelere göre node.js kendisi tek dişli) ]. Ana iş parçacığı dışında, libev ve libeio iş parçacığı havuzu idare ve libev ana döngü ile etkileşim sağlar. V8 olay döngü bu. benim anladığım 1 kalıcı olay döngüsü vardır: C zaman uyumsuz görevleri işlemek için bir havuzu [libeio & libev)] kullanıyor.

Örneğin:

eio_custom(Task,FLAG,AfterTask,Eio_REQUEST);

Tüm modüllerde görünen genellikle işlevi havuzu Task arıyor. Tamamlandığında, ana iş parçacığı AfterTask işlevi çağırır. Eio_REQUEST halbuki havuzu ve ana konu başlığı arasındaki iletişimi sağlamak olan bir yapı / bir nesne olan isteği işleyicisi.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AFISHAL

    AFISHAL

    7 Mart 2009
  • cosmicrocketman

    cosmicrocket

    17 NİSAN 2006
  • wwjoshdu

    wwjoshdu

    18 ŞUBAT 2011