問題タブ [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.

0 投票する
43 に答える
733373 参照

java - Java での「ランナブルの実装」と「スレッドの拡張」

でスレッドを使用してきた時間から、スレッドJavaを記述する次の 2 つの方法を見つけました。

道具を使ってRunnable

または、extendsでThread:

これら 2 つのコード ブロックに大きな違いはありますか?

0 投票する
12 に答える
237630 参照

java - IllegalMonitorStateExceptionなしでJavaで待機と通知を使用するにはどうすればよいですか?

2つの行列があり、それらを乗算してから、各セルの結果を出力する必要があります。1つのセルの準備ができたらすぐに印刷する必要がありますが、たとえば、[2] [0]の結果が最初に準備できたとしても、セル[2][0]の前に[0][0]セルを印刷する必要があります。 。だから私はそれを注文で印刷する必要があります。multiplyThreadしたがって、私の考えは、正しいセルを印刷する準備ができたことを通知するまでプリンタスレッドを待機さprinterThreadせてから、セルを印刷して待機に戻るなどです。

だから私は乗算を行うこのスレッドを持っています:

各セルの結果を出力するスレッド:

今、それは私にこれらの例外を投げます:

49行目multiplyThreadは「notify()」です。同期を別の方法で使用する必要があると思いますが、方法がわかりません。

誰かがこのコードが機能するのを手伝ってくれるなら、私は本当に感謝します。

0 投票する
6 に答える
88027 参照

android - サービス、非同期タスク、スレッドの違いは?

サービス、非同期タスク、スレッドの違いは何ですか。私が間違っていなければ、それらはすべてバックグラウンドでいくつかのことを行うために使用されます。では、どちらをいつ使用するかをどのように決定するのでしょうか。

0 投票する
3 に答える
17223 参照

java - JavaアプリケーションでMainメソッドからスレッドを実行するにはどうすればよいですか?

static mainメソッドで使用される変数もstatic同様である必要があると思います。問題はthis、この方法ではまったく使用できないことです。正しく覚えていれば、commnadでスレッドを開始する必要がありmyThread = new ThreaD(this)ます。

以下のコードは、thisスレッドの開始に使用したため、エラーが発生します。私はここで何を間違えましたか?

0 投票する
4 に答える
4772 参照

java - アプリケーションのメイン プロセスまたはリモート サービス プロセスにいるかどうかを検出する

別のプロセスで実行されているリモート サービスを持つアプリケーションがあります。

Application クラスも使用しています。

このようなことはできますか?

プロセス名を取得して、それを使用してリモート サービスにいるかメイン アプリにいるかを検出できると考えていますが、プロセス名を取得する方法がわかりません。から PID を取得できますが、android.os.Process.myPID()あまり役に立ちません。

0 投票する
1 に答える
937 参照

android - Android thread.join() アプリの再起動時にスレッド強制終了

アプリに問題があります。キャンバスに描画するための SurfaceHolder があります。
surfaceCreated メソッドの下で、thread.start(); を呼び出します。
surfaceDestroyed メソッドの下で、thread.join(); を呼び出します。
アプリを実行してホーム キーを押すと、メソッドが呼び出されますsurfaceDestroyed

問題は、後でアプリを再度実行しようとすると、スレッドが既に開始されているという例外が発生することです。どうしてこれなの?を使用して、スレッドが既に実行されているかどうかをテストしていますisAlive()thread.join行をに置き換える必要がありthread.waitますか?
もしそうなら、スレッドを再開するのではなく、どうすればスレッドを再開できsurfaceCreatedますか?

0 投票する
5 に答える
2712 参照

java - Threadクラスのrunメソッド

出力は次のとおりです。RunnableAThreadB
どうやって来るのかわかりませんか?(クラスBのrunメソッドで何が起こるか)

0 投票する
4 に答える
1608 参照

java - Javaスレッドはどのようにスケジュールされますか?

Linuxスレッドの場合、Javaでマルチスレッドプログラミングを最近開始しました。カーネルがそれらをスケジュールすることを知っています(スケジュールされているユニットエンティティであるため)が、私のシステム(RHEL 6.1)ではJavaプログラムがJVMで実行されますユーザー空間インスタンスとして実行されるプログラムとして実装されます。では、カーネルが Java スレッドを認識しないと、JVM でプリエンプティブ マルチタスクが行われるのはなぜでしょうか? このことを行う際の JVM とカーネルの相互作用のメカニズム全体が示されていると役に立ちます。

可能な情報源を引用してください

0 投票する
9 に答える
45004 参照

java - ExecutorServiceをJavaのデーモンに変える

私はJava1.6でExecutoreServiceを使用しています。

メインスレッドが終了すると(スレッドプールによって処理されるすべてのタスクとともに)、このプールは、明示的に呼び出すまでプログラムがシャットダウンするのを防ぎます。

このプールで使用される内部スレッド管理をデーモンスレッドに変換することで、これを呼び出す必要を回避できますか?または私はここで何かが欠けていますか?