isWaiting()メソッドはありません。どのスレッドが特定のオブジェクトのwait()をブロックしているかどうかをテストすることは可能ですか? Threadオブジェクトが与えられた場合、Threadがwait()しているオブジェクトがあればそれを見つけることは可能ですか?別のスレッドがwait()ingかどうかを調べるには?
0
A
答えて
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がここにあります。
関連する問題
- 1. スレッドがスリープ状態にあるかどうかを調べる
- 2. 現在のスレッドがメインスレッドであるかどうかを調べる
- 3. ファイルが存在するかどうかを調べるスレッドNullPointerExceptionをスローする
- 4. data.table - ある列が別の列(リスト)にあるかどうかを調べる
- 5. どのスレッドが完了したかを調べる方法
- 6. divにスクロールバーがあるかどうかを調べるには
- 7. ?WebView:shouldStartLoadWithRequest:naviagiontType ... wait?の間に応答を調べますか?
- 8. Haskell:型がクラスのインスタンスかどうかを調べるには?
- 9. シートが空であるかどうかを調べるには?
- 10. 別のスレッドが存在するかどうかのスレッド同期
- 11. 別の.netアセンブリがロードされているかどうかを調べる
- 12. モデルが変更されたかどうか調べるには
- 13. プログラムがサブプロセスでクラッシュしたかどうか調べるには?
- 14. Javascript関数にクロージャがあるかどうかを調べる
- 15. アクションスクリプトにアイテムが存在するかどうかを調べる
- 16. クラスがUIWebViewに存在するかどうかを調べる
- 17. ボタンがJavaに存在するかどうかを調べる
- 18. ノードストリームがobjectModeにあるかどうかを調べる
- 19. ポイントが矩形上にあるかどうかを調べる
- 20. linuxでフォルダがコピープロセスにあるかどうかを調べる
- 21. Extjs:要素にツールチップがあるかどうかを調べる
- 22. XSLT:ノードがノードリストにあるかどうかを調べる
- 23. ポイントが道路上にあるかどうかを調べる
- 24. 日付がスパン内にあるかどうかを調べる
- 25. 商品がAppleにあるかどうかを調べる
- 26. テーブルにデータベースが存在するかどうかを調べる
- 27. データベースにテーブルが存在するかどうかを調べる
- 28. カーソルに結果があるかどうかを調べる
- 29. オブジェクトがヒープ内部にあるかどうかを調べる
- 30. キーに値があるかどうかを調べる
このロックにはgetOwner()メソッドが含まれているので、あなたはちょっと質問に答えていると思います。 – Qwertie