-1

Runnable を実装するクラスを「Class1」と呼び、thread.start(); を使用して「スレッド 1」という名前のスレッドを開始します。

「Class2」と呼ばれる Class1 のサブクラスである別のクラスがあります。これには main メソッドが含まれており、while ループを実行するクラスで別のメソッドを実行します。ただし、Class2 で while ループを実行する Thread は「スレッド 1」ではなく、まったく別のスレッドであることに気付きました。

Class2 の while ループを独自のスレッドではなく「スレッド 1」で実行する方法はありますか? あいまいすぎる場合はお知らせください。:)そして、助けてくれてありがとう。

4

1 に答える 1

1

あなたのコードの説明には、いくつかの問題があります。

  • メイン クラスを分離し、サブクラスに含めないようにする必要がありますClass2Main混乱しないように呼び出します。
  • オブジェクト コンストラクターでスレッドを開始しないでください。this完全に初期化される前に新しいスレッドからアクセスできるため、これは非常に悪いパターンです。メインスレッドが and を呼び出しnew Class1()ていると仮定しnew Class2()ます。メインスレッドにもスレッドを開始させます。

    Thread thread1 = new Thread(new Class1());
    thread1.start();
    Thread thread2 = new Thread(new Class2());
    thread2.start();
    
  • 実行中のスレッドがClass1サブクラス メソッドにアクセスする方法はありません。スレッドを開始new Thread(new Class1())すると、 のメソッドも表示されませんClass2

多分私はあなたが言っていることを理解していません。問題に適切に対処できるように、いくつかの小さなコード サンプルを投稿してください。

于 2013-04-04T03:18:29.120 に答える