在里面调用新线程是构造函数

Maz*_*zzy 6 java multithreading

创建一个线程并在类的构造函数中调用其start()方法是否正确?

public class Server implements Runnable {

    private ServerSocket server;

    public Server(int port) {
        try {
            //Opens a new server 
            server = new ServerSocket(port);
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }

        new Thread(this, "Server").start();
    }

    @Override
    public void run() {
    }
}
Run Code Online (Sandbox Code Playgroud)

mre*_*mre 11

恕我直言,不要这样做.您允许this参考在施工期间逃逸.