2012-04-20 64 views

回答

6

那麼,對於等待狀態嘗試thread.getState() == Thread.State.WAITING || thread.getState() == TIMED_WAITING

至於線程等待的對象,我不確定,但我懷疑你可以得到線程在沒有本機代碼的情況下要用到的對象。換句話說,即獲得在給定對象上持有鎖的線程,對於純Java似乎也是不可能的(請參閱:Programmatically determine which Java thread holds a lock)。

0

基本的併發方法可能不足以滿足您的需求。你可能想要嘗試java.util.concurrent包。可以解決您的問題的示例類之一是ReentrantLock。這裏是線程上完整的tutorial

+0

我想你是sorta-kinda回答這個問題,因爲這個鎖包含一個getOwner()方法。 – Qwertie 2012-04-20 17:33:20