加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Reactor Pattern and Non-blocking IO

发布时间:2020-12-15 04:56:06 所属栏目:百科 来源:网络整理
导读:· Java server class with multiple client connections: one-to-one ratio of threads to clients,therefore enormous thread overhead,resulted in performance problems and lack of scalability. The main problem is blocking I/O calls. · JDK 1.4 s

·Java server class with multiple client connections: one-to-one ratio of threads to clients,therefore enormous thread overhead,resulted in performance problems and lack of scalability. The main problem is blocking I/O calls.

·JDK 1.4 supports non-blocking I/O calls (java.nioandjava.nio.channels).These packages were designed principally according to Reactor design pattern (Using Design Patterns to Develop Reusable Object-Oriented Communication SoftwarebyDouglas C. Schmidt).

The actors in Reactor pattern are:

?Handles,which identify resources (such as network connections,open files,and synchronization

objects) that are managed by an operating system.

?Reactor,which defines an interface for registering,removing,and dispatchingEvent Handler

objects. An implementation of theReactorinterface provides a set of application-independent

event demultiplexing and dispatching mechanisms. These mechanisms dispatch application-specific

Event Handlerin response to events occurring on one or moreHandles.

?Event Handler,which specifies an interface used by theReactorto dispatch callback methods

defined by objects that are pre-registered to handle certain types of events (such as input events,

output events,and signals).

?Concrete Event Handler,which implements the customized callback method(s) that process events

in an application-specific manner.

Using Reactor in Communication Software

    • Short tutorial
    • Important classes injava.nio.channels:
      • SocketChannel,ServerSocketChannel
      • Selector(Reactor)
      • SelectionKey
    • java.nio:ByteBuffer

Example

  • Reactor
  • ConnectionAcceptor(Event Handle)
  • ConnectionReader(Event Handle)
  • MessageProcessorTask
  • SimpleClient
  • ThreadPool

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读