Java main()方法无法完全运行 - 从同一应用程序运行客户端和服务器

Lor*_*mer 0 java multithreading program-entry-point client-server runnable

我一直在研究以下代码:

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");
    }
}
Run Code Online (Sandbox Code Playgroud)

MainWindow有一个while循环的程序运行时,只是重复.如何启动Client课程并与课程的其余部分同时运行?

wat*_*ios 5

一些选择......

  1. MainWindow单独启动Thread
  2. 运行Client作为单独的Java应用程序

使用新的线程应该是一个非常简单的解决方案 - 像这样......

Thread t = new Thread() {
    public void run() {
        MainWindow mW = new MainWindow();
        mW.run(null);
    }
};
t.start();
Run Code Online (Sandbox Code Playgroud)

或者,更好的是,将您的MainWindow班级改为extends Threadimplements Runnable.如果你这样做,你可以通过调用mW.start();而不是当前的mW.run(null);方法来执行它,然后它将Thread为你单独启动它.

有关更多信息,请参阅ThreadRunnable文档.