服务器处理1000个并发文件上传/下载的nio或io?

时间:2012-06-09 13:02:32

标签: java io scalability nio

所以人们告诉NIO比IO更快,并且比IO更好。对于处理1000个并发GET / PUT的服务器是否相同?

每个模型的简单线程利用倍数核心到最大值.NIO在这方面有立场吗?

有没有办法将这两者结合起来?如果是这样,任何关于细节的链接都会更好。

2 个答案:

答案 0 :(得分:1)

几十年前,NIO比IO更好地扩展,主要是因为你可以有效使用的线程数量相对较少。特别是在Linux系统上。例如几百个线程。今天,临界点要高得多,例如大约10,000。如果您需要100,000个连接,使用NIO是个好主意。但是,如果您只有几千个,那么您可能会发现其他问题,例如磁盘或网络性能则更为重要。

我几乎总是使用NIO,每个阻塞连接有一个线程。事实上,Java 7中的NIO2阻止套接字和文件之前的默认行为。 BTW NIO2使用线程池来支持其“异步”IO。 ;)

答案 1 :(得分:0)

除了@Kumar发布的链接外,我发现这个链接很有帮助(几周前正在做这项研究):http://paultyma.blogspot.com/2008/03/writing-java-multithreaded-servers.html

查看相关幻灯片以获取更详细的统计数据。他为java.io方法提出了论据。当然,和所有事情一样,这取决于用例。