ए सिकंदरा (और एक म्यूटेक्स) एक है सिंक्रनाइज़ेशन ऑब्जेक्ट , एक संसाधन साझा करने के लिए विभिन्न प्रक्रियाओं के बीच संवाद करने के लिए उपयोग किया जाता है। उदाहरण के लिए, यदि आपके पास एक से अधिक धागे हैं, तो आप प्रायोगिकता के लिए विभाजन जाँच कर सकते हैं, आप प्रत्येक परीक्षण के खत्म होने के बाद अलग-अलग विभाजक निर्दिष्ट करना चाहेंगे।
एक धागा का उपयोग करके सेमाफोर की जांच करने की आवश्यकता है प्रतीक्षा करें यह देखने के लिए कि क्या वस्तु स्वतंत्र है। हालाँकि, गतिरोध को संभालने के लिए एक थ्रेड को एक सेमाफ़ोर जारी करने में विफल होना चाहिए, प्रतीक्षा फ़ंक्शन एक सीमित समय-आउट निर्दिष्ट कर सकते हैं, जो संदेश आपको दिखाई देता है। यदि कोई हस्तांतरण बहुत लंबा होता है, तो इसे नियंत्रित करने वाला अर्धवृत्त समाप्त हो जाता है।
अधिक जानकारी के लिए देखें WaitForSingleObject फ़ंक्शन , या C ++ ट्यूटोरियल मल्टी-थ्रेडेड प्रोग्रामिंग ।
जब आप सीमित बैंडविड्थ वाले नेटवर्क पर बड़ी फ़ाइलों को स्थानांतरित कर रहे हैं, तो आप वास्तविक दुनिया की स्थिति में क्या कर सकते हैं?
फ़ाइलों को संपीड़ित करें (XML डेटा, विशेष रूप से, ~ 10: 1 को ज़िप के साथ संपीड़ित करता है)।
फ़ाइलों को विखंडू में तोड़ें (एक उपद्रव, लेकिन किसी भी फ़ाइल प्रकार के लिए लागू)।
बैंडविड्थ में सुधार। उदाहरण के लिए, मैंने SSH / SFTP पाया अत्यंत एक पुराने सर्वर पर धीमा है, लेकिन जब रैम जोड़ा गया था, तो डेटा अधिक तेजी से स्थानांतरित हो गया।