创建线程并在类的构造函数中调用其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() {
    }
}

最佳答案

恕我直言,不要这样做。您允许this引用在构造过程中转义。

关于java - 在内部调用新线程是构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8855231/

10-14 12:31
查看更多