निष्पादकों # newFixedThreadPool:फिक्स्ड थ्रेडपूल और कैश थ्रेडपूल बनाने के दौरान विभिन्न कतार का उपयोग क्यों करें?
public static ExecutorService newFixedThreadPool(int nThreads) {
return new ThreadPoolExecutor(nThreads, nThreads,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>());
}
निष्पादकों # newCachedThreadPool:
public static ExecutorService newCachedThreadPool() {
return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
60L, TimeUnit.SECONDS,
new SynchronousQueue<Runnable>());
}
क्यों दो ThreadPool अलग कतार का उपयोग करें? मैंने जावा डॉक को LinkedBlockingQueue और SynchronousQueue के बारे में देखा है, लेकिन मुझे अभी भी पता नहीं है कि उनका उपयोग क्यों किया जाता है, प्रदर्शन पर विचार करना या दूसरों को?
क्या यह एक डुप्लिकेट है? यह एक ही सवाल नहीं पूछता है। प्रतिक्रिया में कुछ सामान्य हो सकता है, लेकिन यह एक अलग सवाल है। –
संबंधित एसई प्रश्न से कारण: सिंक्रोनस क्यूई एक बहुत ही विशेष प्रकार की कतार है - यह क्यूई के इंटरफ़ेस के पीछे एक मिलनसार दृष्टिकोण लागू करता है (उत्पादक उपभोक्ता तैयार होने तक निर्माता प्रतीक्षा करता है, उपभोक्ता प्रतीक्षा करता है)। –