創建一個線程並在類的構造函數中調用其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() {
}
}
你能解釋一下嗎? – Mazzy 2012-01-13 18:20:03
@Mazzy,您允許另一個對象查看部分構造的對象,這可能會產生嚴重的負面影響。 – mre 2012-01-13 18:20:34
您可以使用靜態工廠方法來獲得所需的效果,而不會產生負面影響。 – emory 2012-01-13 18:41:24