EventBus
EventBus:
0: Register one object as subscriber in registry
1: Search annotations on all subscriber's methods which has only one parameter as event type
2: Create the subscriber with object, executor and its method
3: Put the created subscriber to map with event type as key
4. Post event in multi-thread
5. Get all subscriber by event type
6. Dispatcher dispatch event to its every subscriber with executor, listener of event and its handler method.
7. Dispatcher put event to queue for every post thread
8. Run handler of subscriber with event by invoking method of subscriber in executor
9. Subscriber maybe has thread pool with task queue or one event queue with single thread
Refactor to reactor:
1. Introduce selector
2. Introduce Global bus system
3. Introduce queue for every event type, every event type can look as socket channel