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();
}
}