問題タブ [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 - Java での「ランナブルの実装」と「スレッドの拡張」
でスレッドを使用してきた時間から、スレッドJava
を記述する次の 2 つの方法を見つけました。
道具を使って:Runnable
または、extendsでThread
:
これら 2 つのコード ブロックに大きな違いはありますか?
java - IllegalMonitorStateExceptionなしでJavaで待機と通知を使用するにはどうすればよいですか?
2つの行列があり、それらを乗算してから、各セルの結果を出力する必要があります。1つのセルの準備ができたらすぐに印刷する必要がありますが、たとえば、[2] [0]の結果が最初に準備できたとしても、セル[2][0]の前に[0][0]セルを印刷する必要があります。 。だから私はそれを注文で印刷する必要があります。multiplyThread
したがって、私の考えは、正しいセルを印刷する準備ができたことを通知するまでプリンタスレッドを待機さprinterThread
せてから、セルを印刷して待機に戻るなどです。
だから私は乗算を行うこのスレッドを持っています:
各セルの結果を出力するスレッド:
今、それは私にこれらの例外を投げます:
49行目multiplyThread
は「notify()」です。同期を別の方法で使用する必要があると思いますが、方法がわかりません。
誰かがこのコードが機能するのを手伝ってくれるなら、私は本当に感謝します。
android - サービス、非同期タスク、スレッドの違いは?
サービス、非同期タスク、スレッドの違いは何ですか。私が間違っていなければ、それらはすべてバックグラウンドでいくつかのことを行うために使用されます。では、どちらをいつ使用するかをどのように決定するのでしょうか。
java - JavaアプリケーションでMainメソッドからスレッドを実行するにはどうすればよいですか?
static main
メソッドで使用される変数もstatic
同様である必要があると思います。問題はthis
、この方法ではまったく使用できないことです。正しく覚えていれば、commnadでスレッドを開始する必要がありmyThread = new ThreaD(this)
ます。
以下のコードは、this
スレッドの開始に使用したため、エラーが発生します。私はここで何を間違えましたか?
java - アプリケーションのメイン プロセスまたはリモート サービス プロセスにいるかどうかを検出する
別のプロセスで実行されているリモート サービスを持つアプリケーションがあります。
Application クラスも使用しています。
このようなことはできますか?
プロセス名を取得して、それを使用してリモート サービスにいるかメイン アプリにいるかを検出できると考えていますが、プロセス名を取得する方法がわかりません。から PID を取得できますが、android.os.Process.myPID()
あまり役に立ちません。
android - Android thread.join() アプリの再起動時にスレッド強制終了
アプリに問題があります。キャンバスに描画するための SurfaceHolder があります。
surfaceCreated メソッドの下で、thread.start()
;
を呼び出します。
surfaceDestroyed メソッドの下で、thread.join()
;
を呼び出します。
アプリを実行してホーム キーを押すと、メソッドが呼び出されますsurfaceDestroyed
。
問題は、後でアプリを再度実行しようとすると、スレッドが既に開始されているという例外が発生することです。どうしてこれなの?を使用して、スレッドが既に実行されているかどうかをテストしていますisAlive()
。thread.join
行をに置き換える必要がありthread.wait
ますか?
もしそうなら、スレッドを再開するのではなく、どうすればスレッドを再開できsurfaceCreated
ますか?
java - Threadクラスのrunメソッド
出力は次のとおりです。RunnableAThreadB
どうやって来るのかわかりませんか?(クラスBのrunメソッドで何が起こるか)
java - Javaスレッドはどのようにスケジュールされますか?
Linuxスレッドの場合、Javaでマルチスレッドプログラミングを最近開始しました。カーネルがそれらをスケジュールすることを知っています(スケジュールされているユニットエンティティであるため)が、私のシステム(RHEL 6.1)ではJavaプログラムがJVMで実行されますユーザー空間インスタンスとして実行されるプログラムとして実装されます。では、カーネルが Java スレッドを認識しないと、JVM でプリエンプティブ マルチタスクが行われるのはなぜでしょうか? このことを行う際の JVM とカーネルの相互作用のメカニズム全体が示されていると役に立ちます。
可能な情報源を引用してください
java - ExecutorServiceをJavaのデーモンに変える
私はJava1.6でExecutoreServiceを使用しています。
メインスレッドが終了すると(スレッドプールによって処理されるすべてのタスクとともに)、このプールは、明示的に呼び出すまでプログラムがシャットダウンするのを防ぎます。
このプールで使用される内部スレッド管理をデーモンスレッドに変換することで、これを呼び出す必要を回避できますか?または私はここで何かが欠けていますか?