मान लें कि मैं एक बंदरगाह पर प्राप्त करने के लिए धागा शुरू करता हूं। सॉकेट कॉल रिकॉर्फ़ पर अवरुद्ध होगा। फिर, किसी अन्य धागे में, मैं सॉकेट बंद करता हूं।सॉकेट बंद होने पर रिकवर से अनब्लॉक करें
विंडोज़ पर, यह रिकवर से अनब्लॉक करेगा और मेरा थ्रेड निष्पादन समाप्त हो जाएगा।
लिनक्स पर, यह रिकवर से अनब्लॉक नहीं करता है, और नतीजतन, मेरा धागा हमेशा के लिए कुछ भी नहीं कर रहा है, और थ्रेड निष्पादन समाप्त नहीं होता है।
क्या कोई मेरी मदद कर सकता है लिनक्स पर क्या हो रहा है? जब सॉकेट बंद हो जाता है, तो मैं
अनवरोधित करने के लिए रिकॉर्फ़ॉर्म करना चाहता हूं, मैं चुनिंदा() का उपयोग करने के बारे में पढ़ता रहता हूं, लेकिन मुझे नहीं पता कि मेरे विशिष्ट मामले के लिए इसका उपयोग कैसे किया जाए।
यही कारण है कि है: यहाँ कैसे मैं एक विचार "मतदान" कहा जाता है का उपयोग कर समस्या हल का एक संक्षिप्त सारांश है (कार्यक्रम के रूप में अच्छी तरह से चलाने की कोशिश करें, प्रिंट बयान आप के चल रहा क्या एक ठोस विचार दे देंगे) मैंने कहा "किसी भी तरह से एक और धागे में, मैं सॉकेट बंद करता हूं ... इस मामले को संभालने की ज़रूरत है और मैं नहीं चाहता कि मेरे कार्यक्रम की संभावना हमेशा के लिए लटकती हुई हो क्योंकि एक बंदरगाह पर अवरुद्ध धागे की वजह से – user657178
@ user657178 इस मामले को संभालने की आवश्यकता नहीं है क्योंकि कोड जो अन्यथा सही है, संभवतः * इस मामले को ट्रिगर नहीं कर सकता है। –