您的位置:首页 > Web前端 > React

Reactor Pattern and Non-blocking IO--reference

2014-05-03 23:14 555 查看
reference from:http://www.cs.bgu.ac.il/~spl051/Personal_material/Practical_sessions/Ps_12/ps12.html

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.nio and java.nio.channels). These packages were designed principally according to Reactor design pattern (Using Design Patterns to Develop Reusable Object-Oriented Communication Software by Douglas 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 dispatching Event Handler

objects. An implementation of the Reactor interface provides a set of application-independent

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

Event Handler in response to events occurring on one or more Handles.

Event Handler, which specifies an interface used by the Reactor to 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 in java.nio.channels:

SocketChannel, ServerSocketChannel

Selector (Reactor)

SelectionKey

java.nio: ByteBuffer

Example

Reactor

ConnectionAcceptor (Event Handle)

ConnectionReader (Event Handle)

MessageProcessorTask

SimpleClient

ThreadPool
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: