当前位置: 首页 > news >正文

wordpress换空间要改杭州网站排名优化工具

wordpress换空间要改,杭州网站排名优化工具,网站app怎么做,wordpress内容导航常用程序模式-LifeCycle模式 场景 当我们要监控一个组件的生命周期的时候#xff0c;比如#xff0c;启动时#xff0c;启动后#xff0c;关闭前#xff0c;关闭后 实现 LifeCycleModule public interface LifeCycleModule {/*** 获取当前状态* return*/LifeCycle.St…常用程序模式-LifeCycle模式 场景 当我们要监控一个组件的生命周期的时候比如启动时启动后关闭前关闭后 实现 LifeCycleModule public interface LifeCycleModule {/*** 获取当前状态* return*/LifeCycle.State getCurrentState();/*** add listener* param listener*/void addListener(LifeCycleListener listener);/*** 启动*/void start();/*** 停止*/void stop();/*** 关闭*/void close(); }AbstractLifeCycleModule: public abstract class AbstractLifeCycleModule implements LifeCycleModule {private LifeCycle lifeCycle new LifeCycle();private ListLifeCycleListener listeners new ArrayList();Overridepublic LifeCycle.State getCurrentState() {return lifeCycle.getState();}Overridepublic void addListener(LifeCycleListener listener) {listeners.add(listener);}Overridepublic void start() {synchronized (lifeCycle){if (!lifeCycle.canChangeToStart()){return;}for (LifeCycleListener listener : listeners) {listener.beforeStart();}doStart();lifeCycle.changeToStarted();for (LifeCycleListener listener : listeners) {listener.afterStart();}}}protected abstract void doStart();Overridepublic void stop() {synchronized (lifeCycle){if (!lifeCycle.canChangeToStop()){return;}for (LifeCycleListener listener : listeners) {listener.beforeStop();}doStop();lifeCycle.changeToStop();for (LifeCycleListener listener : listeners) {listener.afterSop();}}}protected abstract void doStop();Overridepublic void close() {synchronized (lifeCycle){if (!lifeCycle.canChangeToClose()){return;}for (LifeCycleListener listener : listeners) {listener.beforeClose();}lifeCycle.changeToClosed();try {doClose();}catch (Exception e){throw new RuntimeException(e);}finally {for (LifeCycleListener listener : listeners) {listener.afterClose();}}}}protected abstract void doClose(); }LifeCycleListener public interface LifeCycleListener {/*** 在开始之前*/void beforeStart();/*** 在开始之后*/void afterStart();/*** 在停止之前*/void beforeStop();/*** 在停止之后*/void afterSop();/*** 在关闭之前*/void beforeClose();/*** 在关闭之后*/void afterClose(); }LifeCycle 状态管理 public class LifeCycle {private volatile LifeCycle.State state State.INIT;public LifeCycle.State getState() {return state;}public boolean canChangeToStart() {State curState this.state;if (curState State.INIT || curState State.STOP) {return true;}if (curState State.START) {return false;}if (curState State.CLOSE) {throw new IllegalArgumentException(can not move close to start);}throw new IllegalArgumentException(illegal state);}public synchronized boolean changeToStarted() {State curState this.state;if (curState State.INIT || curState State.STOP) {state State.START;return true;}return false;}public boolean canChangeToClose() {State curState this.state;if (curState State.CLOSE) {return false;}return true;}public synchronized boolean changeToClosed() {State curState this.state;if (curState State.CLOSE) {return false;}state State.CLOSE;return true;}public boolean canChangeToStop() {State curState this.state;if (curState State.START) {return true;}return false;}public synchronized boolean changeToStop() {State curState this.state;if (curState State.START) {state State.STOP;return true;}return false;}enum State {INIT, START, STOP, CLOSE}public boolean initialized() {return this.state State.INIT;}public boolean started() {return this.state State.START;}public boolean stopped() {return this.state State.STOP;}public boolean closed() {return this.state State.CLOSE;}}测试 Slf4j public class WebServer extends AbstractLifeCycleModule{public WebServer(){addListener(new WebServerListener());}Overrideprotected void doStart() {log.info({} doStart, Thread.currentThread().getName());}Overrideprotected void doStop() {log.info({} doStop, Thread.currentThread().getName());}Overrideprotected void doClose() {log.info({} doClose, Thread.currentThread().getName());}static class WebServerListener implements LifeCycleListener{Overridepublic void beforeClose() {log.info({} before close, Thread.currentThread().getName());}Overridepublic void afterClose() {log.info({} after close, Thread.currentThread().getName());}Overridepublic void beforeStart() {log.info({} before start, Thread.currentThread().getName());}Overridepublic void afterStart() {log.info({} after start, Thread.currentThread().getName());}Overridepublic void beforeStop() {log.info({} before stop, Thread.currentThread().getName());}Overridepublic void afterSop() {log.info({} after stop, Thread.currentThread().getName());}}public static void main(String[] args) throws InterruptedException {WebServer webServer new WebServer();webServer.start();TimeUnit.SECONDS.sleep(1);webServer.stop();TimeUnit.SECONDS.sleep(1);webServer.close();} }结果: INFO com.example.lifecycle.WebServer -- main before start INFO com.example.lifecycle.WebServer -- main doStart INFO com.example.lifecycle.WebServer -- main after start INFO com.example.lifecycle.WebServer -- main before stop INFO com.example.lifecycle.WebServer -- main doStop INFO com.example.lifecycle.WebServer -- main after stop INFO com.example.lifecycle.WebServer -- main before close INFO com.example.lifecycle.WebServer -- main doClose INFO com.example.lifecycle.WebServer -- main after close
http://www.pierceye.com/news/704965/

相关文章:

  • 视频网站后台设计针式个人知识库管理系统
  • 外围网站开发网页制作对联
  • 深圳福永网站建设网站多个用户怎样建设
  • 百度网站排名怎么提高wordpress页面全屏的插件
  • 企业网站优化方式wordpress 外链播放器
  • 设计衣服的网站久久诗歌网
  • 上海网站营销it运维网
  • 一起做网店广州站怎么推广软件让别人下载
  • 王晴儿网站建设方案wordpress媒体库 ftp
  • 乡村建设网站自己的网站做防伪码
  • 企业网站托管新乡企业网站建设
  • 移动网站开发课程设计莱芜四中网站
  • 做论坛网站赚钱吗做电影网站要几G空间的
  • 网站建设综合实训心得intitle 网站建设
  • 天津市做网站公司wordpress demo
  • 做外贸网站公司公司网站的seo优化
  • 网站页面设置上海微信小程序开发公司
  • 中企动力是怎么建设网站的房地产市场低迷
  • 成都眉山网站建设平台兼职网站开发
  • 化妆品网站的建设 论文php技术的网站开发
  • 女人与黑狗做视频网站网站seo关键词排名
  • ps制作个人网站营销软文怎么写
  • 建立网站的方案南京小程序开发网站建设
  • 类似淘宝的网站怎么做的产品推广会议流程
  • 写作网站的文风软件开发的基本过程
  • 做胃镜多少钱那好天津津门网站a顺德高端网站
  • 网站升级维护中 模板用ps怎么做网站背景
  • 免费商城网站建设建设银行企业网站首页
  • 北京哪家网站建设公司比较好帝国cms怎么做网站地图
  • 做网站制作外包数据可视化