В NetBeans есть новый намек, в котором говорится: Thread.sleep, вызываемый в цикле.
Вопрос 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();
}
}