我不明白這些框架解決了什麼問題。他們是否替代了像Apache HTTPD,Tomcat,Mongrel等HTTP服務器?還是他們更多?爲什麼我可以使用它們...一些真實世界的例子?我已經看到了無數的聊天室和廣播服務的例子,但是並沒有看到這與例如設置Java程序打開套接字併爲每個請求分派線程的方式不同。Ruby EventMachine,Python Twisted或JavaScript Node.js的要點/目的是什麼?
我想我明白了非阻塞I/O,但我不明白怎麼比一個多線程的Web服務器有什麼不同。對於Node.js,我認爲它只有一個線程,並且這可能比雜耍多個線程更高效,但這是這些框架和傳統Web服務器之間的唯一區別嗎?
我買的是等待其他事情佔用了大量的時間,但對於其中的特定頁面有很多處理事情,並採取〜500ms的完成情況。這意味着其開始和結束之間的每個其他請求都需要等待1/2秒才能啓動。我正在考慮一個腳本,它能夠處理大量不能以已編譯的方式檢索的事物,即大量的CPU,很少的I/O。 – CCw 2010-05-29 03:20:25
@CCw:不,它不會,至少有節點。js你爲這個過程設置了一個事件,並在完成後得到回調(簡而言之),而腳本的其餘部分繼續處理異步和服務請求。你所描述的是相反的,'同步'方法。 – stagas 2010-05-29 11:00:06
事實上,每頁執行500毫秒計算的東西需要大量的CPU才能獲得併發性,或者應該將其作爲後臺任務進行切片,並將事件完成。 大多數網絡系統都無法運行許多這樣的事情 - 很多堆棧掛着,線程正在切換,沒有人完成任務。 異步編程迫使人們孤立那些表現不佳的代碼,並將系統作爲一個整體考慮。 – aredridel 2010-07-06 03:22:55