📄 engine.java~3~
字号:
package stat;/** * <p>Title: sms_statistics</p> * <p>Description: 短信服务平台计费统计程序</p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: * </p> * @author rjz@weathercn.com * @version 1.0 */public class Engine extends Thread{ //引擎状态 // ------------------------------------------------ // RUNNING(运行状态) // ------------------------------------------------ // | | // ------------------------------------------------ // ACCELERATE(加速状态) DECELERATE(减速状态) // ------------------------------------------------ // | | // ------------------------------------------------ // STOPPED(停止状态) // ------------------------------------------------ // public final static int THREAD_ACCELERATE = 0; public final static int THREAD_RUNNING = 1; public final static int THREAD_DECELERATE = 2; public final static int THREAD_STOPPED = 3; public String engineName; //引擎状态 public int m_nStatus = THREAD_STOPPED; public Engine(String strName) { super(strName); this.engineName=strName; this.setDaemon(true); } public boolean isRunning() { if(m_nStatus == THREAD_RUNNING) { return true; } return false; } public boolean isStopped() { if(m_nStatus == THREAD_STOPPED) { return true; } return false; } public void startup() { if(m_nStatus == THREAD_ACCELERATE || m_nStatus == THREAD_RUNNING) { return; } m_nStatus = THREAD_RUNNING; start(); } public void shutdown() { if(m_nStatus == THREAD_DECELERATE || m_nStatus == THREAD_STOPPED) { return; } m_nStatus = THREAD_DECELERATE; } public void sleep(int s){ try { Thread.sleep(s); } catch(Exception e) { //Config.log.log(e,this.engineName+".sleep : unepected exit !"); } } public void sleep() { try { Thread.sleep(1000); } catch(Exception e) { //Config.log.log(e,this.engineName+".sleep : unepected exit !"); } } public void nap() { try { Thread.sleep(5); } catch(Exception e) { //Config.log.log(e,this.engineName+".nap : unepected exit !"); } } public void wait(Engine engine) { int nStatus = engine.m_nStatus; //如果线程已经停止或者已经启动,则不需要再等待状态变化。 if(nStatus == THREAD_STOPPED || nStatus == THREAD_RUNNING) { return; } //等待线程的状态发生变化。 long lStartTime = System.currentTimeMillis(); while(engine.m_nStatus == nStatus) { if(TimeConfig.DEFAULT_WAIT_TIME > 0 && System.currentTimeMillis() - lStartTime > TimeConfig.DEFAULT_WAIT_TIME) { break; } //稍等 nap(); } } public String toString(){ return this.engineName; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -