google 下的AbstractIdleService
来源:互联网 发布:mac大型单机游戏下载 编辑:程序博客网 时间:2024/06/05 09:27
这个提供的service主要是负责一些服务器的启动等。比如一些netty,redis等启动关闭的可以放在里面管理
- 介绍下AbstractIdleService的使用
public class Test extends AbstractIdleService{ protected void startUp() throws Exception { //做一些操作启动的操作。 } public void shutDown() { //做一些关闭的操作。 } main() { new Test().startAsync().awaitRunning(); new Test().stopAsync().awaitRunning(); } }
先来介绍下startAsync里面的方法
流程:
1. 判断这个是否是new这个状态 (是否有初始化)
2. 通知监听者启动的状态
3. 启动
4. 出现异常
5. 通知监听者运行
public final Service startAsync() { if (monitor.enterIf(isStartable)) { try { snapshot = new StateSnapshot(STARTING); starting(); doStart(); } catch (Throwable startupFailure) { notifyFailed(startupFailure); } finally { monitor.leave(); executeListeners(); } } else { throw new IllegalStateException("Service " + this + " has already been started"); } return this; }
正在启动的地方
启动和关闭都是各一个线程
就是各种状态转变。。
private final Service delegate = new AbstractService() { @Override protected final void doStart() { executor().execute(new Runnable() { @Override public void run() { try { startUp(); //对外的接口 notifyStarted(); } catch (Throwable t) { notifyFailed(t); throw Throwables.propagate(t); } } }); } @Override protected final void doStop() { executor().execute(new Runnable() { @Override public void run() { try { shutDown(); //对外接口 notifyStopped(); } catch (Throwable t) { notifyFailed(t); throw Throwables.propagate(t); } } }); }; protected Executor executor() { return new Executor() { @Override public void execute(Runnable command) { MoreExecutors.newThread(threadNameSupplier.get(), command).start(); } }; }
0 0
- google 下的AbstractIdleService
- AbstractIdleService服务类用法
- delphi下的google翻译
- google阴影下的专业搜索引擎们
- Google发布Linux下的Picasa软件
- Google发布Linux下的Picasa软件
- Google发布Linux下的Picasa软件
- Google发布Linux下的Picasa软件
- Google发布Linux下的Picasa软件
- Google发布Linux下的Picasa软件
- Google发布Linux下的Picasa软件
- Google Earth下的巨型阿迪达斯运动鞋
- Greasemetal:Google Chrome 下的油猴
- Fedora11下Google Gadgets的安装
- [Google Breakpad] windows平台下的编译
- ubuntu 下google浏览器的安装
- 分享下Google的Https搜索
- ubuntu 下google浏览器的安装
- JSP页面GET请求中文乱码
- 爸爸 妈妈 猎人和狗 有两男孩 两个女孩 。他们要过河,但猎人不在的时候,狗咬任何人,当爸爸不在的时候,妈妈打小男孩,妈妈不在的时候,爸爸打小女孩,他们怎么过去
- 在KEIL realview MDK下为单一C文件生成.LIB文件
- 计算机视觉算法的开源代码
- 生成随机的IP地址
- google 下的AbstractIdleService
- python读写excel
- BitLocker使用: 不重启,关闭已解锁加密驱动器。
- 一个小型名字字典
- EasyUI DataGrid 相同连续列合并
- ToolBar标题文字居中的方法
- 把map转换成String类型的json格式
- hbase编程指南
- Java程序设计概述及环境(Java核心技术卷Ⅰ)