मैं ThreadPoolExecutor
नीचे के रूप में उपयोग कर रहा हूँ वापसी कथन के साथ एन कार्यों के बाद stucks:जावा 8 threadPoolExecutor
ThreadPoolExecutor pool = new ThreadPoolExecutor(cores, 50, 30L,
TimeUnit.SECONDS, new ArrayBlockingQueue<>(10));
और:
pool.execute(()->{
//code goes here
if(some condition){
return;
}
//code goes here
})
और जब वापसी कथन के साथ इस ब्लॉक सक्षम किया गया है, उन सभी कार्यों को हो जाता है टीपीई में फंस गया। टीपीई का कहना है कि यह पूरी तरह से लोड हो गया है और हमेशा RejectedExecutionException
अपवाद
मुझे समझ में नहीं आता कि ऐसा क्यों होता है। उदाहरण के लिए यदि आपके पास आकार 10 का पूल है, और आपके पास 100 कार्य हैं, तो उनमें से 10 अनुभाग से मेल खाते हैं, आप 101 वें कार्य को स्वीकार नहीं करेंगे, सभी अगले कार्यों को खारिज कर दिया जाएगा। क्यूं कर?
यह बताना मुश्किल है कि इस विवरण से क्या गलत हुआ ... सबमिट किए गए कार्यों में से कोई भी निष्पादित किया गया था? शायद आपके कार्यों के कोड में कुछ प्रकार की बग है और वे सरल रुक गए हैं ... – nukie
असल में आप 11 वें कार्य को स्वीकार नहीं करेंगे क्योंकि कतार 10 आकार का है – Antoniossss