2013-04-17 284 views
0

我已經看遍了所有,但我找不到一個很好的例子解釋NIO2或如何使用Java套接字執行異步IO。例如,如果我想通過允許線程使用異步IO從套接字而不是常規同步IO讀取來加速Web爬蟲,那麼我將如何實現這一點?Java異步套接字IO

回答

1

NIO2不會比同步I/O更快。它允許用幾個線程運行多個連接(數萬個)。如果您可以爲每個連接花費一個線程,請使用同步I/O - 編程更簡單。

+0

對不起,延遲迴復。你能否澄清一下使用NIO2是否合適? – Jin

+0

換句話說,什麼時候擁有更少的線程和更多的連接會更好?爲每個線程節省更多的線程和連接? – Jin

+0

線程佔用大量內存,所以在一臺計算機上擁有> 1000個線程是不切實際的,即使功能強大的服務器機器也難以一次承載超過10000個線程。所以內存消耗是主要標準。我會說,對於<100個連接,我肯定會爲每個連接使用一個線程,對於大於100的連接,我會認爲如果我可以爲線程花費太多內存。 –