[解決済み】Thread start()とRunnable run()の違いとは?)
2022-04-03 12:42:50
質問
次の2つのRunnableがあるとします。
class R1 implements Runnable {
public void run() { … }
…
}
class R2 implements Runnable {
public void run() { … }
…
}
では、これと何が違うのか。
public static void main() {
R1 r1 = new R1();
R2 r2 = new R2();
r1.run();
r2.run();
}
そして、これ。
public static void main() {
R1 r1 = new R1();
R2 r2 = new R2();
Thread t1 = new Thread(r1);
Thread t2 = new Thread(r2);
t1.start();
t2.start();
}
解決方法は?
最初の例 マルチスレッドではありません。両方が1つの(既存の)スレッドで実行されます。スレッド生成なし。
R1 r1 = new R1();
R2 r2 = new R2();
r1
と
r2
を実装したクラスの2つの異なるオブジェクトに過ぎません。
Runnable
インターフェイスを実装しており、そのため
run()
メソッドを使用します。 を呼び出すと
r1.run()
は、現在のスレッドで実行されていることになります。
2つ目の例 2つの別々のスレッド
Thread t1 = new Thread(r1);
Thread t2 = new Thread(r2);
t1
と
t2
はクラスのオブジェクトです。
Thread
. を呼び出すと
t1.start()
を呼び出すと、新しいスレッドが開始され
run()
のメソッドを使用します。
r1
を内部で実行し、その新しいスレッドで実行します。
関連
-
[解決済み] Java Swingで複数のボタンに対して複数のActionListenersを追加する方法
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Javaにおける "implements Runnable "と "extends Thread "の違いについて
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] プロセスとスレッドの違いは何ですか?
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み] Javaクラスにおけるcanonical name、simple name、class nameの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 未処理の例外タイプIOException」が表示されるのですが?
-
[解決済み] maven. -source 1.5ではラムダ式がサポートされていません。
-
[解決済み] HashMapのtoString関数はなぜ異なる順序で自分自身を印刷するのですか?
-
[解決済み] Firebase クラスにシリアライズするプロパティが見つからない
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] 最も近い整数への切り捨て - 私は不正をしているのでしょうか、それともこれは十分すぎるほど適切なのでしょうか?
-
[解決済み] 午前0時からの時間を秒単位で取得する方法
-
[解決済み] Java- <T extends Comparable<T>>の意味?
-
[解決済み] 文字列が一意な文字であるかどうかを判定する
-
[解決済み] javaでメソッドを呼び出すプログラムのエラー修正