問題タブ [java-threads]
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() の前にスレッドによってロックされていない同期オブジェクト
特定のサービスが開始されたことをシステムのいくつかのセクションに通知するブール値が必要です。
奇妙な理由で、エラーが発生していますjava.lang.IllegalMonitorStateException: object not locked by thread before notifyAll()
。
奇妙なのは、notifyAll() が、notifyAll() を呼び出したオブジェクトを制御する同期ブロック内にあることです。
私のクラスは次のように始まります:
私はアンドロイドアプリケーションに取り組んでいます。何にも影響を与えるべきではないと思いますが、Javaの動作に影響を与える場合に備えて、そのコメントで質問を補足しています。
オブジェクトが同期ブロック内でロックされている場合、例外が発生するのはなぜですか?
java - 同じクラスで 2 つのメソッドを同期した場合、それらは同時に実行できますか?
同じクラスで 2 つのメソッドを同期した場合、同じオブジェクトで同時に実行できますか? 例えば:
methodA()
2 つの異なるスレッドで同じオブジェクトを 2 回実行できないことはわかっています。で同じものmethodB()
。
しかし、実行methodB()
中に別のスレッドで実行できmethodA()
ますか? (同じオブジェクト)
java - notify メソッドの仕組み
javadoc notify に従って、このオブジェクトのモニターで待機している単一のスレッドをウェイクアップします。このオブジェクトを待機しているスレッドがある場合は、そのうちの 1 つが選択されて起動されます。選択は任意であり、実装の裁量で行われます。スレッドは、待機メソッドの 1 つを呼び出すことによって、オブジェクトのモニターで待機します。
この動作を通知する方法を知りたいです。私が読んだ多くのサイトでは、シグナルを送信していますが、ここでシグナルとはどういう意味ですか?
通知は、最初に待機しているスレッドに直接シグナルを送信しますか、それともスレッド スケジューラにシグナルを送信しますか?
java - Javaは他のスレッドに通知します
実行開始から 1 秒ごとに経過時間を出力する 1 つのスレッドと、15 秒ごとにメッセージを出力する別のスレッドがあります。最初のスレッドは、スレッド間で共有される時刻変数を更新する必要があり、時刻変数を更新するたびに時刻変数を読み取るように他のスレッドに通知します。これは私が現在持っているものです:
私はスレッドに非常に慣れていないため、既に持っているものを正しく実装しているかどうかわかりません。また、別のスレッドに通知する方法がわかりません。現時点では正しい道を進んでいないように感じます。
誰かが助けてくれれば、本当に感謝しています!
java - Java で 2 つのスレッドを使用して奇数と偶数を出力する
以下のような2つのスレッドを使用してそれをやろうとしています。誰かが私がここでやっている明らかな間違いを指摘できますか?
しかし、このプログラムは 1 を出力して終了するだけです。1 を出力した後、available は true になり、printEven はウェイクアップし、出力して available を false に設定する必要があります。ここで何が問題なのかわかりませんか?他の解決策を見ましたが、私の解決策が機能しない理由を知りたいです。