gpt4 book ai didi

java - 连接中的线程 hibernate

转载 作者:行者123 更新时间:2023-12-01 12:50:40 24 4
gpt4 key购买 nike

我有一个网络客户端,它会循环尝试 3 次连接到服务器。这段时间我使用 sleep 线程。有没有办法用一些代码替换 Thread.sleep(700); ,从而在客户端连接后立即跳过等待期。

NClient pc;

if (pc == null)
{
try
{
Thread.sleep(700);
}
catch (InterruptedException x)
{
//TODO
}

if (pc != null)
{
outPrint.println("Connected");
break;
}
}

我希望通过减少连接协商过程中的等待时间来改善用户体验。 Java 有哪些选项可以做到这一点?

最佳答案

这个问题的答案取决于NClient的实现。通常,我会为此使用连接超时。下面的示例说明了如何使用Socket 执行此操作。我不知道 NClient 是什么,所以遗憾的是我无法为您提供 NClient 示例。

创建一个尝试连接的方法 - 最多 3 次

Socket connectToServer() {
Socket socket = new Socket();
final int connectTimeoutMs = 700;
for (int i=0; i<3; i++) {
try {
// the call to connect blocks the current thread for a maximum of 700ms if it can't connect
socket.connect(new InetSocketAddress("localhost", 8080), connectTimeoutMs);
} catch (IOException e) {
// failed to successfully connect within 700 milliseconds
e.printStackTrace();
}
}
return socket;
}

按如下方式使用上述内容

Socket socket = connectToServer();
if (socket.isConnected()) {
// do stuff with the valid socket!
}

简而言之,使用连接超时!

关于java - 连接中的线程 hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24234968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com