के साथ ट्रू मल्टीथ्रेडिंग मैं एक बहु थ्रेडेड सी ++ डीएलएल का परीक्षण करने की कोशिश कर रहा हूं। यह डीएलएल थ्रेड-सुरक्षित होना चाहिए। मैंने इसे boost.python से लपेट लिया है, और मैं boost.python wrapper के माध्यम से DLL का उपयोग करने के लिए एकाधिक पायथन थ्रेड बनाना चाहता हूं। मैं वास्तव में को थ्रेडिंग समस्याओं का कारण बनने की कोशिश कर रहा हूं।boost.python
मुझे अच्छा प्रलेखन प्रतीत नहीं होता है कि क्या पाइथन दुभाषिया अपने दो धागे (अलग-अलग कोरों पर कहता है) को एक आयातित मॉड्यूल में एक साथ कॉल करने का समर्थन करेगा, और क्या जीआईएल को सभी को ध्यान देने की जरूरत है मैं डीएलएल को जो प्रदान करना चाहता हूं उससे ऊपर कोई भी अतिरिक्त सुरक्षा नहीं चाहता हूं।
क्या कोई मुझे कई धागे से डीएलएल मॉड्यूल को कॉल करने वाले पाइथन के विवरण का वर्णन कर सकता है और इस मामले में जीआईएल का उपयोग कैसे किया जा सकता है?
स्पष्ट रूप से आपको अपने आप को जीआईएल जारी करना होगा, अन्यथा आपके पास एक समय में एक से अधिक धागे चलेंगे। Http://stackoverflow.com/questions/1576737/releasing-python-gil-in-c-code – lvella
देखें यह http://stackoverflow.com/questions/8009613/ का डुप्लिकेट है? –
एक साइड सवाल: यदि मैं जीआईएल जारी नहीं करता हूं, और पायथन से बुलाया गया सी ++ कोड थ्रेड बनाता है, तो क्या यह थ्रेड पिन पायथन कोड सुरक्षित रूप से या नहीं कर सकता है। मुझे लगता है कि यह एक दुर्घटना की व्याख्या नहीं होगी ... – MatthieuW