我有一个JavaFX应用程序,并通过单击按钮调用以下代码。
new Thread(() -> {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(4558);
Socket accept = serverSocket.accept();
} catch (IOException e) {
e.printStackTrace();
}
}).run();
使用线程,我想防止UI冻结,但在serverSocket.accept()之后,应用程序未返回任何反馈。 该端口未被阻止。
有人知道为什么吗? 预先感谢!
答案 0 :(得分:4)
启动Thread
时,请勿调用run()
方法,而应调用start()
方法。
代码如下:
new Thread(() -> {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(4558);
Socket accept = serverSocket.accept();
} catch (IOException e) {
e.printStackTrace();
}
}).start(); // was run();