|
1
|
| Lasitha Yapa Programmer · 技术社区 · 8 年前 |
|
1
3
使用NIO(对于新IO,而不是非阻塞IO),您可以使用
基本前提是您拥有资源,单个选择器将“旋转”,并选择其中一个来处理任何需要执行的操作(连接、读取、写入)。完成后,将选择另一个资源,依此类推。当然,除非确实有事情要做,否则不会选择资源,频道会用
然而,使用非阻塞IO需要很多 harder to program 比基本IO更重要,如果您没有处理大量资源,也不会有太大的[改进]( NIO Performance Improvement compared to traditional IO in Java )要么。即使您确实想使用NIO,建议您除非出于学习目的使用NIO,否则使用现有的框架,如Netty,这将使您更容易专注于程序的功能,而不是让NIO正常工作的复杂性。 如果你 做 想花时间和NIO在一起,有很多问题可以讨论 Java NIO Server |
|
|
2
0
不需要。即使您尝试实现事件驱动的方法,也应该有人监听套接字来抛出事件。因此,用一个线程基本上不可能做到这一点。 但是,您可以在通知连接的客户端时中断无限循环。你不会接受新客户,但你将处于单一线程中。 |