सी में थ्रेड्स के बीच अपवादों को प्रचारित करना
सी में थ्रेड्स के बीच अपवादों को प्रचारित करने का कार्य तब उत्पन्न होता है जब मुख्य थ्रेड से कॉल किया गया फ़ंक्शन एकाधिक उत्पन्न करता है सीपीयू-गहन कार्य के लिए वर्कर थ्रेड। चुनौती कार्यकर्ता थ्रेड पर होने वाले अपवादों को संभालने और उचित प्रबंधन के लिए उन्हें मुख्य थ्रेड में वापस लाने में निहित है।
पारंपरिक दृष्टिकोण
एक सामान्य दृष्टिकोण यह है कि वर्कर थ्रेड पर विभिन्न प्रकार के अपवादों को मैन्युअल रूप से पकड़ें, उनके विवरण रिकॉर्ड करें, और उन्हें मुख्य थ्रेड पर पुनः डालें। हालाँकि, इस पद्धति की एक सीमा है कि यह केवल अपवाद प्रकारों के एक निश्चित सेट का समर्थन करती है। भविष्य में पेश किए गए किसी भी नए अपवाद प्रकार के लिए कोड में मैन्युअल संशोधन की आवश्यकता होगी। अपवाद प्रसार के लिए. यह प्रकार थ्रेड्स के बीच अपवादों के परिवहन की अनुमति देता है। ]#शामिल इस उदाहरण में, वर्कर थ्रेड होने वाले किसी भी अपवाद को पकड़ता है और इसे ईपीटीआर को असाइन करता है। मुख्य थ्रेड पर, ईपीटीआर की जाँच की जाती है और, यदि कोई अपवाद मौजूद है, तो इसे पुनः स्थापित किया जाता है। यदि आपके पास एकाधिक वर्कर थ्रेड हैं , आपको किसी भी संभावित अपवाद को पकड़ने के लिए प्रत्येक थ्रेड के लिए अलग-अलग अपवाद_ptr उदाहरण बनाए रखने की आवश्यकता होगी। माइक्रोसॉफ्ट-विशिष्ट: /ईएचए कंपाइलर ध्वज के साथ एसईएच अपवादों का उपयोग करते समय, उदाहरण कोड भी कैप्चर किया जा सकता है एसईएच अपवाद जैसे पहुंच उल्लंघन। यह सभी मामलों में वांछनीय नहीं हो सकता है।#include
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3