Reactor Pattern and Non-blocking IO
·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
Example
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |