Dans NetBeans, il y a un nouvel indice qui dit: Thread.sommeil appelée dans la boucle.
Question 1: Comment et quand peut-il être un problème pour dormir dans une boucle?
Question 2: Si c'est un problème, que dois-je faire à la place?
Mise à JOUR: Question 3: Voici une partie du code. Dites-moi, dans ce cas, si je dois être en utilisant quelque chose d'autre à la place du Fil.Dormir dans une boucle. En bref, il est utilisé par un serveur qui écoute les connexions TCP de client. Le sommeil est utilisé ici dans le cas où le nombre maximum de sessions avec les clients est atteint. Dans cette situation, je veux de l'application d'attendre la fin d'une session gratuite est disponible.
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();
}
}