第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java測試守護(hù)線程的一段程序在Java7下失效

Java測試守護(hù)線程的一段程序在Java7下失效

慕尼黑8549860 2019-03-29 22:08:38
在看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)能打印出來的情況
查看完整描述

2 回答

?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個贊

我覺得可能的原因。
因?yàn)橹骶€程和你新開的線程運(yùn)行的順序并不是確定的,當(dāng)新的線程要輸出的時候,你的main線程可能已經(jīng)退出了。由于你setDaemon(true)
Marksthisthreadaseitheradaemonthreadorauserthread.TheJavaVirtualMachineexitswhentheonlythreadsrunningarealldaemonthreads.
這樣就算你還有一個daemon線程,jvm也會退出,因?yàn)闆]有普通的線程在運(yùn)行,這樣可能導(dǎo)致你的daemon線程中的printf沒有輸出內(nèi)容。
                            
查看完整回答
反對 回復(fù) 2019-03-29
?
慕尼黑的夜晚無繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個贊

因?yàn)槟鉺etDaemon(true)了啊,你這段代碼執(zhí)行main方法的時候就剩下守護(hù)線程了,JVM在這種情況下可能選擇直接退出所以并不保證會執(zhí)行完守護(hù)線程。
                            
查看完整回答
反對 回復(fù) 2019-03-29
  • 2 回答
  • 0 關(guān)注
  • 324 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號