推 WrongHole: 01/20 14:55
※ 引述《cyclone350 (老子我最神)》之銘言:
: task 跑到一半會消失? 這甚麼道理? try catch 不就形同虛設了嗎?
: 請問在開發 multi Thread 時真的會有這種情況發生嗎?
: 如果真的有這情況,各位大大是怎麼處理?
Thread 不會憑空消失,不過,在非同步的情況下,很容易會誤寫出無用的 try-catch,
例如:
try {
asyncTask();
}
catch(SomeException ex) {
bla...bla...
}
因為 asyncTask() 是非同步,因此執行完之後,流程就繼續往下,離開 try-catch
了,這樣就算你的 asyncTask() 拋出例外,也不會被捕捉到 … 這種感覺就像你說的
,try-catch 形同虛設,基本上,這可以換個方式來解決,例如 Promise 模式之類的…
http://www.codedata.com.tw/java/jdk8-completablefuture/
: ---------------------
: 另外想請問程式暫停除了 Thread.sleep 還有其他的方式嗎?
wait()、notify() ...
: 不過之後可能會被問一個問題
: "萬一 Thread.sleep 之後就起不來,然後程式也沒跳任何錯誤
: (意味 Exception 及 Error 不會 trigger),怎麼辦?"
: 所以還蠻想找一個替代方案的
: -----------------------
看不到你的程式碼,也不知道你的目的,你的主管說 Thread 消失的說法也不明不白,
還是問清楚他的意思是什麼吧!如果他也說不出什麼叫做消失,那就是職場政治學的問
題了… XD
--
良葛格學習筆記
http://openhome.cc
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.215.48.182
※ 文章網址: https://www.ptt.cc/bbs/java/M.1421715286.A.B05.html