問題タブ [illegalmonitorstateexcep]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 整数で同期すると、notifyAll() が IllegalMonitorStateException を発生させるのはなぜですか?
このテスト プログラムの結果はなぜjava.lang.IllegalMonitorStateException
ですか?
結果:
java - IllegalMonitorStateException
このコードで IllegalMonitorStateException が発生する原因は何ですか
私が知る限り、実行中のスレッドには通知が呼び出されたオブジェクトのモニターが必要なので、私は少し混乱しています。私のコードは間違っていないように見えますが、どういうわけかそうです。
multithreading - Java で同期しているスレッド、IllegalMonitorStateException
「メイン」スレッドと実行可能スレッドの 2 つのスレッドを同期しようとしています。IllegalMonitorStateException が発生しますが、「オブジェクトのロックがありません」の意味が完全にはわかりません。
これが私のコードです:
java - 同期ブロック内から IllegalMonitorStateException が発生する原因は何ですか?
今日、非常に驚くべき例外に遭遇しました。同期ブロック内で、wait() を呼び出すと、 がスローされIllegalMonitorStateException
ます。何が原因でしょうか?
これは、十分にテストされたオープン ソース コードで発生しています 。 #l222
明らかな原因を排除しました。
- 正しい変数で同期されていますか? はい、そうです
muxLock
- それは可変変数ですか?いいえ、
muxLock
最終です - モニターの動作に影響を与える可能性のある奇妙な「-XX:」JVM フラグを使用していませんか? いいえ。ただし、JNI を介して C++ アプリ内に埋め込まれた JVM を起動しています。
- これは奇妙な JVM ですか? いいえ、Sun の 1.6.0_25 win/x64 JRE です。
- これは既知の JVM バグですか? http://bugs.sun.com/bugdatabaseで関連するものが見つかりません
だから、私はもっととてつもない説明を考えようとしています。
- キャッチされていないメモリ不足エラーにより、モニターの状態が台無しになる可能性はありますか? これを確認していますが、メモリ エラーの兆候はまだ見られません。
更新:(コメントに基づく)
また、スタックトレースとブレークポイントから、例外がスローされたときにスレッドが実際に同期ブロック内にあることを確認しました。他の無関係なコードが例外を発行しているわけではありません (何かが Eclipse を本当に混乱させない限り!)
java - 食の哲学者の仕事。私のコンセプトをコードに落とし込む
私はJavaスレッドにかなり慣れていません。Java の同期の概念を使用してデッドロック メカニズムを実行しようとしています。これにはいくつかの問題があります。コードを改善する方法を知りたいです。私の目標は、デッドロックを回避することです。
編集: eat()
メソッドレビューしてください
java - ジョブスケジューラでwait()を使用しているときにIllegalMonitorStateExceptionが発生する
私はJavaRMIベースのプロジェクトに取り組んでいますClient-->Job Scheduler--> Server structure
。
以下に示すように、ジョブスケジューラクラスには2つのメソッドがあります。コメントは、コードの各行の目的を説明しています。
wait()
のメソッドの最初の呼び出しでIllegalMonitorStateExceptionが発生しacceptJob()
ます。任意のアイデア、これを解決する方法。
ありがとう、Jiten
java - IllegalMonitorStateException notify()およびwait()
私は問題があります。同期ブロックで使用するnotify()
と、IllegalMonitorStateExceptionが発生します。誰かが私がこの問題を解決するのを手伝ってもらえますか?
2番目のスレッドにcharを送信するために1つのスレッドが必要です。その後、このスレッドは待機する必要があり、2番目のスレッドはこのcharを出力します。その2番目のスレッドが待機した後、最初のスレッドが再び次の文字を送信します
Main.java:
java - 条件付きの IllegalMonitorStateException
そこで、次の出力を出力するプログラムを作成しようとしています。
44
33
22
11
プログラムはマルチスレッドであると想定されており、競合状態を防ぐためにロックを使用する必要があります。また、スレッドが出力したい番号が変数 threadnum (出力する必要がある次の番号) と一致しない場合に待機する必要があるように、Condition を使用する必要があります。実行しようとすると IllegalMonitorStateExceptions が発生することを除いて、ほとんどのことがわかりました。何が原因で、どのように修正するのかわかりません。助けていただければ幸いです。前もって感謝します。
メインクラス:
java - wait() にスレッドを配置できません - IllegalMonitorStateException
バックグラウンド:
Thread
私は、マップのノードで互いに取引を行う小型ロボット (これらの拡張クラス) のアプリケーションを持っています。ノードに入るロジックをプログラムしようとしています。ノードは、ノードで出会う 2 つのボット間の取引を実行する責任があります。
ノードにコーディングしたいロジックは次のとおりです。
- ボット A が到着します。
- ノードに別のボットが存在する場合 (例: ボット B)
- 次に、ボット A とボット B の間で取引を仲介します。
- ELSEボット A に、別のボットがノードに到着するまで待つように指示します。
私の試み
これが、上記のロジックをコーディングする私の試みです。
しかし、私がそれを実行するとIllegalMonitorStateException
、trader.wait()
オンラインになります。調べてみましたが、よくあるトラブルのようです。だから私は試してみましたsynchronized(trader)
が、すべてがフリーズしただけで、すべてがフリーズしたため、コードをデバッグすることさえできませんでした。
java - GUIスレッドからJavaの「ロジック」スレッドに文字列を取得できません
私は、数字のリストを検索して、特定の他の数字になるものを見つけるプログラムを書いています。そこに問題はありません。アルゴリズムは、おそらくあまり効率的ではありませんが、機能的です。
現在、数値のリストはテキスト ファイルから取得する必要がありますが、ユーザーがリストをコピーして TextArea に貼り付け、Enter キーを押して、プログラムに文字列を送り返すことができるようにしようとしています。通常の (非 GUI) スレッド。
そうするために、私はこの例に従いました(一番の答え)。ボタンを押す代わりにキーイベントを使用し、リンクされたリストの代わりに文字列を使用していますが、それ以外はかなり似ています。
TextDemo を作成して実行するコード (はい、チュートリアル プログラムを適用しました):
TextDemo 自体 (免責事項を除いて、Oracle に警告しないでください :)):
コードを実行すると、Enter キーを押してプログラムがクラッシュするまで、動作しているように見えます。エラー コード (最初の 5 行のみを含めています。完全なバージョンはこちら: http://img.photobucket.com/albums/v242/ChaosGuide/illegalmonitorstateexception.png ):
スレッドに触れることさえしたのはこれが初めてなので、何が間違っているのか本当にわかりません。
どんな助けでも大歓迎です。