नेटबीन में, एक नया संकेत है जो कहता है: थ्रेड स्लीप लूप में बुलाया जाता है।नेटबीन/जावा/नया संकेत: थ्रेड स्लीप लूप
प्रश्न 1: कैसे/जब यह एक पाश में सोने के लिए एक समस्या हो सकता है?
प्रश्न 2: यदि यह कोई समस्या है, तो मुझे इसके बजाय क्या करना चाहिए?
अद्यतन: प्रश्न 3: यहां कुछ कोड है। मुझे इस मामले में बताओ अगर मुझे थ्रेड के बजाए कुछ और इस्तेमाल करना चाहिए। लूप में सो जाओ। संक्षेप में, यह एक सर्वर द्वारा उपयोग किया जाता है जो क्लाइंट टीसीपी कनेक्शन के लिए सुनता है। ग्राहकों के साथ सत्रों की अधिकतम संख्या तक पहुंचने पर नींद का उपयोग यहां किया जाता है। इस स्थिति में, मैं चाहता हूं कि एक निःशुल्क सत्र उपलब्ध होने तक एप्लिकेशन प्रतीक्षा करें।
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();
}
}
एक java.util.Timer और आवधिक टाइमरटास्क के बारे में कैसे? – Core
@ कोर - यह इस बात पर निर्भर करता है कि आप इसका उपयोग कैसे करते हैं। यदि आप इसे 'नींद()' के बराबर लागू करने के लिए उपयोग करते हैं, तो आपको 'नींद() 'का उपयोग करने जैसी ही समस्याएं हैं। –
क्या होगा यदि हम प्रबंधितexecutorservice का उपयोग कर रहे हैं? – wib