Java线程每连接模型 vs NIO
- 论坛
- Java线程每连接模型 vs NIO
8 浏览
Java线程每连接模型 vs NIO
非阻塞的Java NIO是否仍然比每个连接一个线程的异步套接字慢?
此外,如果您要使用每个连接的线程,您会创建新线程还是使用非常大的线程池?
我正在用Java编写一个MMORPG服务器,如果硬件足够强大,应该能够轻松扩展到10000个客户端,尽管最大客户端数量为24000个(我认为这在Java的每个连接线程模型中是不可能达到的,因为Java有15000个线程限制)。
据一篇三年前的文章所说,使用每个连接模型的阻塞IO仍然比NIO快25%(即此文档http://www.mailinator.com/tymaPaulMultithreaded.pdf),但是在今天是否仍然可以实现相同的结果?自那时以来,Java已经发生了很大变化,我听说在比较实际情况时,结果是值得怀疑的,因为所使用的虚拟机不是Sun Java。
此外,因为这是一个具有许多并发用户相互交互的MMORPG服务器,使用同步和线程安全的实践是否会降低性能,以至于一个单线程的NIO选择器服务于10000个客户端将更快?(所有工作不一定需要在选择器线程上处理,可以在工作线程上处理,就像MINA/Netty的工作方式一样)。
谢谢!