我碰到有包含一方法的Java代碼來執行以下操作:爲了看看線程是否被打斷,睡覺的目的可能是什麼?
static boolean waitForSeconds(long seconds) { try { Thread.sleep(seconds * 1000); } catch (InterruptedException ex) { return false; } return true; }
什麼可能是這樣做的目的是什麼?返回值用於確定計算是否應該繼續。對我來說,嘗試睡1秒,似乎很奇怪,唯一的目的是檢查線是否在那一秒中斷。
調用此方法的代碼是否嘗試完成與thread.isInterrupted()相同的操作?無論試圖做什麼,有沒有更好的方法?
對waitForSeconds的調用出現在另一個方法的頂部,而不是出現在循環內部,所以如果這段代碼確實打算等待一秒以達到某種目的,除了檢查中斷外,看起來好像它會是檢查錯誤的地方。將睡眠放在循環附近不是更好嗎?它在哪裏更清楚它在做什麼?
對於最後一個問題,請改爲回覆此:
Is it clearer to sleep near a function call in a loop or in the function call itself?