在看ThinkInJava,驗(yàn)證其中的一則代碼,發(fā)現(xiàn)其在Java6或者Java8下都是正確的,但是在Java7下卻出現(xiàn)了異常,代碼如下: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卻是什么都不輸出,當(dāng)我在main里加入輸出部分才輸出startingdaemon.不太了解這部分知識,求指教,謝謝=====update===多測試了幾次之后發(fā)現(xiàn)也并不是Java版本的問題,在7下面多測試幾次也還是會出現(xiàn)能打印出來的情況
Java測試守護(hù)線程的一段程序在Java7下失效
慕尼黑8549860
2019-03-29 22:08:38