私はスレッドで割り当てられているので、スレッドがビジー状態になることはありません。 スレッドがブロッキング状態にあるのか、ビジー状態にあるのかをどのように知ることができますか?それをチェックするコマンドはありますか?Javaのビジー待機スレッド
プログラムでは2つの行列があり、それらを変換する必要があります。だから変換スレッドがあり、コードは次のようになります。
transformThread transformThreadFirst = new transformThread(firstMat, n);
transformThread transformThreadSecond = new transformThread(secondMat, n);
transformThreadFirst.start();
transformThreadSecond.start();
try
{
transformThreadFirst.join();
transformThreadSecond.join();
}
catch(InterruptedException e)
{
}
スレッドがビジー状態になるか、それとも問題ありませんか?それとももっと良い解決策がありますか? また、transformThreadの実行では、私は歩留まりを使用せず、ループの2つしかありません。変換アクションだけです。
一般に、私はビジー状態で別のスレッドを待つ恐れがなく、 "join()"コマンドを使用できますか? –
はい、join()は現在のスレッドをブロックします。これは何かが起こるのを待つ正しい方法です。 – soulmerge
@Greg - 私はsoulmergeの説明に合っていますが、join()は正しいアプローチですが、あなたの利益のために、あるスレッドが別のスレッドをビジー状態にすることができないことを認識していれば、それはあなたのOWNスレッドの振る舞いです。フラグをチェックするループのタイプはビジーウェイトですが、ブロックするコマンドはブロックされません。要約すると、誰かがELSEを忙しく待たせることはできません。 –