0

私は次のコードに取り組んでいます:

public class MyStuff {

    public static void main(String[] args)throws IOException {
        //System.out.println("From Test"); 
        ControlGack gack = new ControlGack();
        gack.setVisible(true);
        MainWindow mW = new MainWindow();
        mW.run(null);

        Client c = new Client();
        try {
            c.run(null);
        } catch (IOException e) {
            e.printStackTrace();
        }

        System.out.print("Stupid");
    }
}

プログラムのMainWindow実行中に繰り返される while ループがあります。Clientクラスを開始して、残りのプログラムと同時に実行するにはどうすればよいですか?

4

2 に答える 2

5

いくつかのオプション...

  1. MainWindow別で開始するThread
  2. Clientを別の Java アプリケーションとして実行する

新しいスレッドを使用すると、非常に簡単に修正できるはずです-このようなもの...

Thread t = new Thread() {
    public void run() {
        MainWindow mW = new MainWindow();
        mW.run(null);
    }
};
t.start();

または、さらに良いことに、MainWindowクラスをextends Threadまたはに変更しますimplements Runnable。その場合、現在のメソッドmW.start();の代わりに呼び出して実行するだけで、別のメソッドで開始されます。mW.run(null);Thread

詳細については、スレッドランナブルのドキュメントを参照してください。

于 2012-11-30T01:49:49.067 に答える
0

他の人が必要な正確な回答を提供していますが、これまでスレッドを使用したことがない場合に備えて、スレッドの学習を開始するためのリンクを提供することもできます。

分かりやすい:スレッド

Java エッセンシャル: 並行性

幸運を!

于 2012-11-30T01:54:54.553 に答える