在用超時值調用加入並超時後,Java線程處於什麼狀態。因此,例如,您有以下代碼:加入超時值後,Java線程會發生什麼變化
Thread thread = new Thread();
thread.start();
thread.join(TIMEOUT);
並且超時通過,並且線程還沒有返回什麼狀態?我需要注意什麼才能確保我不會泄漏線程。我最初的假設是,加入通話,做這樣的事情後:
if (thread.isAlive())
{
thread.interrupt();
thread = null;
}
要檢查是否線程仍在運行,並且如果是的話打斷,然後空出來,以確保它得到垃圾收集。
當然,如果你打算中斷與了Thread.interrupt()線程你應該在循環的入口點檢查Thread.interrupted()。 – 2011-04-14 02:05:05
感謝您的示例代碼。我最終完成了這個工作,並定義了線程的狀態,如果超時,我取消線程。一旦我到達SnS階段,我會檢查內存/線程泄漏 – 2011-04-17 00:41:52