每个连接模型的 Java 线程与 NIO
非阻塞 Java NIO 是否仍然比每个连接异步套接字的标准线程慢?
此外,如果要对每个连接使用线程,是只创建新线程,还是使用非常大的线程池?
我正在用Java编写一个MMORPG服务器,如果硬件足够强大,它应该能够轻松扩展10000个客户端,尽管客户端的最大数量是24000(我相信由于Java中的15000线程限制,每个连接模型的线程都无法达到)。从一篇三年前的文章中,我听说每个连接模型的线程阻塞IO仍然比NIO快25%(即本文档 http://www.mailinator.com/tymaPaulMultithreaded.pdf),但是今天仍然可以实现相同的目标吗?从那时起,Java已经发生了很大的变化,我听说在比较现实生活场景时,结果值得怀疑,因为使用的VM不是Sun Java。此外,由于它是一个MMORPG服务器,有许多并发用户相互交互,因此使用同步和线程安全措施是否会降低性能,以至于为10000个客户端提供服务的单线程NIO选择器会更快?(所有工作都不需要使用选择器在线程上处理,它可以在工作线程上进行处理,就像MINA / Netty的工作方式一样)。
谢谢!