在看ThinkInJava,验证其中的一则代码,发现其在Java6或者Java8下都是正确的,但是在Java7下却出现了异常,代码如下:packagecom.mobile.concurrency;importjava.util.concurrent.TimeUnit;classADaemonimplementsRunnable{@Overridepublicvoidrun(){try{System.out.println("startingdaemon");TimeUnit.SECONDS.sleep(1);}catch(InterruptedExceptione){e.printStackTrace();}finally{System.out.println("Thisshouldalwaysrun");}}}publicclassDaemonsDontRunFinally{publicstaticvoidmain(String[]args){Threadt=newThread(newADaemon());t.setDaemon(true);t.start();//System.out.println(":");}}在java6,8下面都能输出startingdaemon,但是java7却是什么都不输出,当我在main里加入输出部分才输出startingdaemon.不太了解这部分知识,求指教,谢谢=====update===多测试了几次之后发现也并不是Java版本的问题,在7下面多测试几次也还是会出现能打印出来的情况
Helenr
慕尼黑的夜晚无繁华
相关分类