PHP (veya Java / ASP.NET / Ruby) tabanlı web sunucularında her istemci isteği yeni bir iş parçacığında başlatılır. Ancak Node.js'de tüm istemciler aynı iş parçacığında çalışır (hatta aynı değişkenleri paylaşabilirler!) Ana iş parçacığı döngüsünü engellemeyen G / Ç işlemlerinin olay tabanlı olduğunu anlıyorum.
Anlamadığım şey, Düğüm yazarı neden tek iş parçacıklı olmasını seçti? İşleri zorlaştırıyor. Örneğin, ana iş parçasını engellediğinden (ve yeni istemci istekleri engellendiğinden) CPU yoğun bir işlevi çalıştıramıyorum, bu yüzden bir işlem oluşturmam gerekiyor (bu da ayrı bir JavaScript dosyası oluşturup başka bir düğüm işlemi yürütmem gerektiği anlamına geliyor) o). Ancak, PHP cpu yoğun görevler her istemcinin farklı bir iş parçacığında olduğu için diğer istemcileri engellemeyin. Çok iş parçacıklı web sunucularına kıyasla avantajları nelerdir?
Not: Bunu aşmak için kümelemeyi kullandım, ama bu hoş değil.
node -e 'setTimeout(()=>{},1000);' & ps -T h $! | wc -l; kill $! görüntüler . Ana olay döngüsü tek iş parçacıklıdır (olmasaydı pek mantıklı olmaz), ancak Düğüm çok iş parçacıklıdır ve isterseniz çok iş parçacıklı tek işlem uygulamaları yazabilirsiniz. Bu konuda kapsamlı bir cevap yazmak isterim, ancak bazı insanlar sorunuzu kapatmaya karar verdiler, bu yüzden yapamam. Tekrar açmak için oy kullanıyorum. Daha fazla oy alır ve tekrar açılırsa lütfen yorumda bana bahset.