दिलचस्प पोस्ट
पायथन में सी लाइब्रेरी को लपेटना: C, Cython या ctypes? 'DateAdded' के लिए अमान्य डिफ़ॉल्ट मान मैं एकाधिक, एक साथ jquery प्रभाव कैसे निष्पादित कर सकते हैं? उद्देश्य-सी / सी में संख्या / फ्लोट के बाद "f" कैमरे से कैप्चर करते समय कम चित्र / छवि गुणवत्ता मैं एक विंडोज़ फार्म के सिस्टम मेनू को कैसे कस्टमाइज़ कर सकता हूं? क्या विंडोज के लिए unistd.h के लिए एक प्रतिस्थापन (दृश्य सी) है? कैसे एक निश्चित शब्द के लिए Git devfs या सामग्री के लिए grep? क्या मैं CouchDB में लेनदेन और ताले कर सकता हूं? Egg_info त्रुटि के कारण पीआईपी के माध्यम से स्थापित नहीं किया जा सकता रिमोट बेअर पर जीआईटी पाइपलाइन कैसे सी + + स्रोत कोड में एक CMake चर पढ़ने के लिए समर्थन लाइब्रेरी का उपयोग किए बिना एंड्रॉइड 4.0, 4.1 (<4.2) में नेस्टेड टुकड़ों के लिए सर्वश्रेष्ठ अभ्यास एक आवेदन को छोड़कर पर frowned है? मैं jQuery में ऊंचाई और स्क्रॉलिंग विंडो की स्थिति कैसे निर्धारित करूं?

जावा का थ्रेड क्या करता है। Sleep thrustedException?

जावा का थ्रेड क्या करता है। Sleep thrustedException? क्या इसे अनदेखा करना सुरक्षित है? मैं किसी भी multithreading नहीं कर रहा हूँ मैं कुछ ऑपरेशन का पुन: प्रयास करने से पहले कुछ सेकंड के लिए प्रतीक्षा करना चाहता हूं।

वेब के समाधान से एकत्रित समाधान "जावा का थ्रेड क्या करता है। Sleep thrustedException?"

आपको आम तौर पर अपवाद को अनदेखा नहीं करना चाहिए। निम्नलिखित पेपर पर नज़र डालें:

इंटरप्ट्स को निगल न करें

कभी-कभी अवरोधक अपवाद को फेंकने का कोई विकल्प नहीं है, जैसे कि जब Runnable द्वारा परिभाषित कार्य एक इंटरप्टबल विधि कॉल करता है। इस स्थिति में, आप इंटरवर्टेड एक्सपैशन पुनर्स्थापित नहीं कर सकते हैं, लेकिन आप कुछ भी नहीं करना चाहते हैं जब अवरुद्ध करने वाला एक तरीका रुकावट का पता लगाता है और बाधित होता है, तो यह बाधित स्थिति को साफ करता है। यदि आप रुकावट अपवाद पकड़ते हैं लेकिन इसे पुनर्स्थापित नहीं कर सकते हैं, तो आपको सबूतों को संरक्षित करना चाहिए कि रुकावट आती है, ताकि कॉल स्टैक पर कोड उच्च रुकावट के बारे में सीख सकें और यदि वह चाहें तो इसका उत्तर दें। यह काम वर्तमान धागा को "पुनःनिर्धारित" करने के लिए अवरोध () को कॉल करके पूरा किया जाता है, जैसा कि लिस्टिग 3 में दिखाया गया है। बहुत कम से कम, जब भी आप रुकावट उठाते हैं और इसे फिर से नहीं निकालते हैं, लौटने से पहले मौजूदा धागा को फिर से विभाजित करें।

 public class TaskRunner implements Runnable { private BlockingQueue<Task> queue; public TaskRunner(BlockingQueue<Task> queue) { this.queue = queue; } public void run() { try { while (true) { Task task = queue.take(10, TimeUnit.SECONDS); task.execute(); } } catch (InterruptedException e) { // Restore the interrupted status Thread.currentThread().interrupt(); } } } 
  • से इंटरप्ट्स निगल मत करो

पूरे अखबार को यहां देखें:

http://www.ibm.com/developerworks/java/library/j-jtp05236/index.html?ca=drs-

अगर कोई बाधित अपवाद फेंका जाता है तो इसका मतलब है कि कुछ चीजों को बाधित करना (आमतौर पर समाप्त होता है) है कि थ्रेड। यह थ्रेड्स को कॉल के द्वारा ट्रिगर किया गया है () विधि को बीच में। प्रतीक्षा विधि यह पता लगाता है और एक अवरुद्ध अपवाद फेंकता है ताकि पकड़ कोड तुरंत समाप्ति के लिए अनुरोध को संभाल सकता है और निर्दिष्ट समय तक प्रतीक्षा नहीं करनी पड़ती है।

यदि आप इसे एक-थ्रेडेड ऐप (और कुछ बहु-थ्रेडेड ऐप्स) में भी उपयोग करते हैं, तो यह अपवाद ट्रिगर नहीं होगा। इसे खाली कैच क्लॉज रखने से मैं इसकी अनुशंसा नहीं कर सकता। अवरुद्ध अपवाद के फेंकने से थ्रेड की बाधित स्थिति साफ हो जाती है, इसलिए यदि ठीक से उस डेटा को खोया नहीं जाता है इसलिए मैं इसे चलाने का प्रस्ताव दूंगा:

 } catch (InterruptedException e) { Thread.currentThread().interrupt(); // code for stopping current task so thread stops } 

कौन सा राज्य फिर से सेट करता है उसके बाद, पूर्ण निष्पादन। यह सही व्यवहार होगा, यहां तक ​​कि कठिन प्रयोग कभी नहीं होगा।

बेहतर क्या हो सकता है:

 } catch (InterruptedException e) { assert false; } 

कैच ब्लॉक में बयान इसका मूल रूप से मतलब है कि यह कभी नहीं होना चाहिए। इसलिए यदि किसी वातावरण में कोड का पुन: प्रयोग किया जाता है, जहां ऐसा हो सकता है तो इसके बारे में शिकायत होगी।

जावा स्पेशलिस्ट न्यूजलेटर (जिसे मैं नि: शुल्क रूप से सुझा सकता हूं) का एक दिलचस्प लेख था , और कैसे InterruptedException को संभालना यह अच्छी तरह से पढ़ने और पचाने के लायक है

सिंगल थ्रेडेड कोड में इसे चलाने के लिए एक ठोस और आसान तरीका यह होगा कि इसे पकड़ने और उसे हर पद्धति के लिए घोषित करने की आवश्यकता से बचने के लिए, रनटाइम अपॉक्सेस में इसे फिर से चालू करना होगा।

क्लास Thread की sleep() और wait() जैसी विधियों में एक InterruptedException हो सकती है यह तब होगा जब कुछ thread उस thread को बाधित करना चाहता है जो प्रतीक्षा या सो रहा है।

InterruptedException एक InterruptedException आमतौर पर सोया जाता है जब एक नींद बाधित होती है।