2013-04-17 172 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的连接,我会认为如果我可以为线程花费太多内存。 –