NetBeans / Java / 新提示:Thread.sleep 在循环中调用
2022-08-31 22:14:05
在 NetBeans 中,有一个新的提示:Thread.sleep 调用 in loop。
问题 1:如何/何时会成为一个问题,在循环中睡觉?
问题 2:如果这是一个问题,我该怎么办?
更新:问题 3:下面是一些代码。在这种情况下,告诉我是否应该使用其他东西而不是循环中的Thread.Sleep。简而言之,这是由侦听客户端TCP连接的服务器使用的。此处使用睡眠,以防达到与客户端的最大会话数。在此情况下,我希望应用程序等待,直到空闲会话变为可用。
public class SessionManager {
private static final int DEFAULT_PORT = 7500;
private static final int SLEEP_TIME = 200;
private final DatabaseManager database = new DatabaseManager();
private final ServerSocket serverSocket = new ServerSocket(DEFAULT_PORT);
public SessionManager() throws IOException, SQLException
{
}
public void listen()
{
while (true)
if (Session.getSessionCount() < Session.getMaxSessionCount())
try
{
new Thread(new Session(database, serverSocket.accept())).start();
}
catch (IOException ex) { ex.printStackTrace(); }
else
try
{
Thread.sleep(SLEEP_TIME);
}
catch (InterruptedException ex) { ex.printStackTrace(); }
}
public static void main(String[] args) throws IOException, SQLException
{
new SessionManager().listen();
}
}