📄 dispatcherpool.java
字号:
/*
* Created on 2003-12-22
*
* To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package com.product.util.event;
import java.util.Iterator;
import java.util.Vector;
/**
* @author Renzhichao
*
* To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
public class DispatcherPool implements Runnable {
private static DispatcherPool inst = new DispatcherPool() ;
static Vector pool = null ;
private boolean flag = true ;
private DispatcherPool(){
pool = new Vector() ;
loadFromConfig() ;
new Thread(this).start() ;
}
public static DispatcherPool getInstance(){
return inst ;
}
public Vector getPool(){
return pool ;
}
/**
* 停止所有的事件处理器。
*
*/
public void stopAll(){
for (Iterator iter = pool.iterator(); iter.hasNext(); ) {
Dispatcher element = (Dispatcher) iter.next();
element.stop() ;
}
}
/**
* 待实现的监控类。用来监控对应的处理池,一旦有问题可以stop.
*
*/
private void monite(){
}
/* (non-Javadoc)
* @see java.lang.Runnable#run()
*/
public void run() {
while(flag){
monite() ;
}
}
/**
* 停止监控,用于系统繁忙的时候可以停止。
*
*/
public void stopMonite(){
flag=false ;
}
/**
* 向池中添加一个Dispatcher.
* @param dispatcher
*/
private void addDispatcher(Dispatcher dispatcher){
new Thread(dispatcher).start() ;
pool.add(dispatcher) ;
}
private void loadFromConfig(){
// Config root = ServiceLoader.getInstance().getConfig().getConfig("DispatcherList");
// Config[] configs = root.getSection("Dispatcher");
// System.out.println("++++++++++++++ Dispatcher number is:"+configs.length);
// for (int i = 0; i < configs.length; i++) {
// Config config = configs[i];
// try {
// String evtName = config.getString("canHandlerEventClass") ;
// boolean willTurnBack = config.getBoolean("willTurnBack") ;
// Dispatcher dispatcher = new Dispatcher() ;
// dispatcher.setCanHandlerEventClass(evtName) ;
// dispatcher.setWillTurnBack(willTurnBack) ;
// /**
// * 得到Dispatcher能够处理的EVENT和对应的Handler的信息
// */
// Config[] handleCfgs = config.getSection("EventHandlers") ;
// for (int j = 0; j < handleCfgs.length; j++) {
// Config handlerCfg = handleCfgs[j];
// String className = handlerCfg.getString("className") ;
// EventHandler handler = (EventHandler) Class.forName(className).newInstance() ;
// dispatcher.add(handler) ;
// }
// addDispatcher(dispatcher) ;
// }
// catch (ConfigException e) {
// e.printStackTrace();
// }
// catch (InstantiationException e) {
// e.printStackTrace();
// }
// catch (IllegalAccessException e) {
// e.printStackTrace();
// }
// catch (ClassNotFoundException e) {
// e.printStackTrace();
// }
// }
System.out.println("++++++++++++++ Add Dispatcher number is:"+pool.size());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -