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

建设工程职称 在哪个网站苏州网站开发公司兴田德润放心

建设工程职称 在哪个网站,苏州网站开发公司兴田德润放心,wordpress用qq登录界面,杭州网站备案要多久文章目录 一.ShutdownHook介绍二.ShutdownHook被调用场景三.ShutdownHook如何使用四.ShutdownHook实践 一.ShutdownHook介绍 ShutdownHook就是一个简单的 已初始化 但是 未启动 的 线程 。当虚拟机开始关闭时#xff0c;它将会调用所有已注册ShutdownHook的回调函数#xff0… 文章目录 一.ShutdownHook介绍二.ShutdownHook被调用场景三.ShutdownHook如何使用四.ShutdownHook实践 一.ShutdownHook介绍 ShutdownHook就是一个简单的 已初始化 但是 未启动 的 线程 。当虚拟机开始关闭时它将会调用所有已注册ShutdownHook的回调函数这些回调函数执行是并发的执行顺序是不确定的。 作用JVM退出时执行的业务逻辑 注意ShutdownHook方法参数必须是Thread的子类由此得知ShutdownHook是异步执行的。 添加Runtime.getRuntime(). addShutdownHook(Thread var1)移除Runtime.getRuntime().removeShutdownHook(this.shutdownHookThread) 需要注意的是在ShutdownHook里执行的操作应当是不太耗时的。因为在用户注销或者操作系统关机导致的JVM shutdown的例子中系统只会预留有限的时间给未完成的工作超时之后还是会强制关闭。 二.ShutdownHook被调用场景 程序正常退出程序调用 System.exit() 退出终端使用 CtrlC 中断程序程序抛出异常导致程序退出例如 OOM数组越界等异常系统事件例如用户注销或关闭系统使用 Kill pid 命令杀掉进程注意使用 kill -9 pid 强制杀掉不会触发执行钩子 三.ShutdownHook如何使用 调用java.lang.Runtime这个类的addShutdownHook(Thread hook)方法即可注册一个ShutdownHook然后在Thread中定义需要在system exit时进行的操作。如下 Runtime.getRuntime().addShutdownHook(new Thread(() - System.out.println(Do something in ShutdownHook) )); 测试例子 首先注册了一个ShutdownHook。 然后系统Sleep 3秒模拟进行某些操作。 然后调用一个空的List抛出异常准备结束程序。 在程序将要结束的时候执行ShutdownHook中的内容。 public static void main(String[] args) {// register ShutdownHookRuntime.getRuntime().addShutdownHook(new Thread(() - System.out.println(Do something in ShutdownHook)));// sleep for some timetry {for (int i0; i3; i) {System.out.println(Count: i ...);TimeUnit.MILLISECONDS.sleep(1000);}List nullList new ArrayList();System.out.println(Trying to print null lists first element: nullList.get(0).toString());} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Ready to exit.);System.exit(0); }结果如下 Count: 0... Count: 1... Count: 2... Exception in thread main java.lang.IndexOutOfBoundsException: Index: 0, Size: 0at java.util.ArrayList.rangeCheck(ArrayList.java:653)at java.util.ArrayList.get(ArrayList.java:429)at HookTest.main(HookTest.java:18) Do something in ShutdownHookProcess finished with exit code 1需要注意的点 当System.exit之后当ShutdownHook开始执行时其他的线程还是会继续执行。应当保证ShutdownHook的线程安全。 在使用多个ShutdownHook时一定要特别小心保证其调用的服务不会被其他Hook影响。否则会出现当前Hook所依赖的服务被另外一个Hook终止了的情况。 四.ShutdownHook实践 例如我们程序自定义了一个线程池用来接收和处理任务。如果程序突然崩溃异常退出这时线程池的所有任务有可能还未处理完成如果不处理完程序就直接退出可能会导致数据丢失业务异常等重要问题。这时钩子就派上用场了。 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit;public class ShutdownHookDemo {// 线程池private static ExecutorService executorService Executors.newFixedThreadPool();static {Runtime.getRuntime().addShutdownHook(new Thread(() - {System.out.println(开始执行钩子方法...);// 关闭线程池executorService.shutdown();try {// 等待秒System.out.println(executorService.awaitTermination(, TimeUnit.SECONDS));} catch (InterruptedException e) {e.printStackTrace();}System.out.println(结束执行钩子方法...);}));}public static void main(String[] args) throws InterruptedException {System.out.println(程序开始启动...);// 向线程池添加个任务for (int i ; i 10; i) {Thread.sleep();final int finalI i;executorService.execute(() - {try {Thread.sleep();} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Task finalI execute...);});System.out.println(Task finalI is in thread pool...);}} } 在命令行窗口中运行程序在10个任务都提交到线程池之后任务都还未处理完成之前使用CtrlC中断程序最终在虚拟机关闭之前调用了关闭回调函数关闭线程池并且等待60秒让所有任务执行完成。
http://www.pierceye.com/news/439652/

相关文章:

  • 紫金优化网站制作python编程100例
  • 原阳网站建设哪家好域名网址
  • 西安学校网站建设wordpress手机端模板下载
  • 泉州网站建设工作室网站上的产品板块
  • 平顶山网站网站建设网页设计与制作教程 刘瑞信 pdf
  • 网站开发深天津设计公司排行榜
  • 做tcf法语听力题的网站公司网页简介
  • 十堰做网站最专业的公司深圳企业网查询
  • 购物网站大全排名调查drupal与wordpress哪个容易
  • 网站建设彳金手指排名网站开发完没人运营
  • 网站建设是设开发公司质量管理流程
  • 金沙网站怎么做代理wordpress tag=
  • 做网站必须花钱吗建筑人才网证书查询
  • 0基础网站建设模板工商注册官方网站
  • 河南网站设计公司价格网站在建设中是什么意思
  • 网站建设公司的成本有哪些方面四川省城乡建设网查询
  • 和什么人合作做游戏视频网站做推送网站
  • 做竞价网站访问突然变少施工企业负责人带班检查计划
  • 网站统计数据分析wordpress安装 第二步
  • 网站续费续的是什么钱Wordpress1002无标题
  • 公司入口网站appui设计师创意平台
  • 济南住房和城乡建设厅网站影视广告创意拍摄
  • 卢松松网站源码网站建设讲师招聘
  • wordpress建站网页无法运vs网站开发表格大小设置
  • 网站怎么制作教程科技小论文怎么写
  • 青岛外贸建设网站制作小程序制作页面教程
  • wordpress 整合phpseo推广有效果吗
  • 毕业设计做网站代码营销推广软文案例
  • 网站seo 文章转载 修改标题手机oa办公系统下载
  • 营销型网站设计工资商城是什么平台