使用java.io包的Java Reactor模式

pen*_*izt 9 java io nio reactor

我在几个应用程序源中看到,比如Minecraft和JIrcs,他们都使用java.io来实现Reactor Plugin(如果我没有错),也在本文中.那么,实现Reactor Pattern时java.io和java.nio有什么区别?我的意思是,像性能优势,流程效率等,如果你认为java.io是实现Reactor Pattern的好解决方案,我可以获得良好的教程(因为谷歌给了我大量的java.nio tuts而不是我想要的java.io)

Vis*_*uth 0

我希望您能通过以下摘自本书第 42 页的信息得出结论

\n\n
\n

java.io.* 类使用装饰器设计模式。装饰器设计模式在运行时将职责附加到对象。装饰器比继承更灵活,因为继承 在编译时将职责附加到类。java.io.* 类使用装饰器模式基于一些基本类在运行时构造不同的行为组合。

\n
\n\n

和43。

\n\n
\n

Java 早已不适合开发执行大量 I/O 操作的程序。此外,文件锁定、非阻塞和异步 I/O 操作以及将文件映射到内存的功能等常用任务也不可用。非阻塞 I/O 操作\n 是通过多线程或使用 JNI 等变通方法实现的。\n J2SE 1/4 中的新 I/O API(又名NIO)\n 改变了这种情况。\n 服务器\n能否有效处理多个客户端请求取决于它如何使用 I/O 流。当服务器必须同时处理数百个客户端时,它必须能够同时使用 I/O 服务,在 Java 中满足这种情况的一种方法是使用线程,但几乎是一对一的线程比率(100 个客户端\n 将有 100 个线程)容易产生异常的线程开销,并且可能\n 由于内存堆栈的消耗而\n 导致性能和可伸缩性问题(即每个线程都有其堆栈,请参阅Q34,\n Java 部分中的Q42 )和CPU 上下文切换(即在线程之间切换,而不是进行实际计算)。为了克服这个问题,Java 平台在 java.nio 包中引入了一组新的非阻塞 I/O 类。非阻塞 I/O 机制是围绕选择器和通道构建的。Channels、 Buffers和Selectors是 NIO 的核心。

\n
\n\n

并阅读更多内容。\n以下是一些提供 Java IO 与 Java NIO 的参考链接:\n Java IO 比 NIO 更快 \xe2\x80\x93 旧的又是新的!、Java IO 与 Java NIO以及IO 与 NIO \xe2\x80\x93 中断、超时和缓冲区。

\n