में एक अनंत लूप को मारना मैं बड़ी संख्या में डेटा सेट को संसाधित करने के लिए किसी तृतीय-पक्ष लाइब्रेरी का उपयोग कर रहा हूं। प्रक्रिया कभी-कभी एक अनंत लूप में जाती है (या अवरुद्ध है - पता नहीं क्यों और कोड में नहीं जा सकता)। मैं इसे एक निर्धारित समय के बाद मारना चाहता हूं और अगले मामले में जारी रखना चाहता हूं। एक साधारण उदाहरण है:जावा
for (Object data : dataList) {
Object result = TheirLibrary.processData(data);
store(result);
}
प्रक्रियाडेटा आमतौर पर 1 सेकंड अधिकतम लेता है। मैं (मैं धागे का उपयोग कर में अभ्यास नहीं कर रहा हूँ)() के बाद, कहते हैं 10 सेकंड
संपादित एक टाइमर जो processData मारता है स्थापित करने के लिए, मैं एक कोड स्निपेट की सराहना करेंगे चाहते हैं। निष्पादक दृष्टिकोण उपयोगी दिखता है लेकिन मुझे नहीं पता कि कैसे शुरू करना है। मेरे लिए कोड के लिए अधिक पारंपरिक दृष्टिकोण के लिए छद्म कोड भी सामान्य है।
@ स्टीवन स्लेन्स्कर - सुझाव देता है कि जब तक कि तृतीय पक्ष ऐप बाधा उत्पन्न न करे, यह काम नहीं करेगा। दोबारा विस्तार और उदाहरणों की सराहना की जाएगी
EDIT मुझे अपने सहयोगियों सैम एडम्स से सटीक समाधान मिल रहा था, जिसे मैं एक उत्तर के रूप में जोड़ रहा हूं। इसमें अन्य उत्तरों की तुलना में अधिक जानकारी है, लेकिन मैं उन्हें एक वोट दूंगा। मैं सैम को अनुमोदित उत्तर के रूप में चिह्नित करूंगा
क्या यह निश्चित रूप से एक अनंत लूप में है, या इसे अवरुद्ध किया जा सकता है? बंद पुस्तकालय प्रोफाइलिंग मदद कर सकता है (जब तक यह obfusticated नहीं है)। –
@ जिम डाउनिंग हां, इसे अवरुद्ध किया जा सकता है - कोई विचार नहीं क्यों –
यह जेएमएक्स में किया जा सकता है? – amphibient