c++ - How to make global objects for multithreaded applications -
मेरे पास एक बहु-इंडेक्स कंटेनर है
typedef multi_index_container & lt; MyData, अनुक्रमित_ द्वारा & lt; Random_access & lt; & gt ;, // इनरेशन ऑर्डर आदेश दिया गया _non_unique & lt; सदस्य & lt; myData, time_t, & myData :: टाइमस्टैम्प & gt; & Gt; & Gt; & Gt; myContainerType; वर्ग myDataOperator {myContainerType myContainer; // myContainer को सम्मिलित करने और खोज करने के लिए कुछ कार्य}
और एक और वर्ग जिसका संपूर्ण प्रोजेक्ट के लिए सामान्य कार्यक्षमता है
class MasterClass {private: myDataOperator myOp; सार्वजनिक: // कुछ सामान्य कार्यात्मकताएं / मेरे कॉन्टैनेयर}
का उपयोग करते हुए कुछ प्रक्रियाएं
और क्लास MasterClass
functionalities का उपयोग करके धागे में काम करने वाली दो कक्षाएं
वर्ग थ्रेड क्लास 1 {निजी: मास्टर क्लास मास्टर; // master के साथ कुछ कॉल मास्टर / धागा 1 आंतरिक कार्यात्मकता के साथ कॉल) वर्ग ThreadClass2 {निजी: MasterClass मास्टर; / / मास्टर / धागा 2 आंतरिक कार्यात्मकता के साथ कुछ क्लाइंट की कुछ कॉल कॉल)
जब भी मैं परियोजना चलाता हूँ, प्रत्येक थ्रेड (6 से अधिक थ्रेड्स होंगे) अपना स्वयं का MasterClass
और myContainer
ऑब्जेक्ट। मुझे क्या चाहिए एक MasterClass
ऑब्जेक्ट है जो सभी कार्यप्रणाली को संभालता है और कंटेनर पर myDataOperator
और एक myContainer
द्वारा सभी थ्रेड्स के लिए पूर्ण नियंत्रण रखता है । इसलिए उन्हें किसी प्रकार का सिंगलटन
या ग्लोबल
लगता है, लेकिन मुझे नहीं पता कि यह कैसे करना है।
जहां तक मैं खोजी गई इंटरनेट, मैंने देखा कि मुझे किसी प्रकार का सिंक्रनाइज़ेशन
या locking
चाहिए
धन्यवाद
मैं MasterClass
और myContainer
वैश्विक (या सिंगलटन) कैसे बना सकता हूँ?
धन्यवाद।
नोट: मैं विजुअल स्टूडियो 2008 में एक Win7 x64 कंप्यूटर पर Visal C ++ का प्रयोग कर रहा / रही हूं
Comments
Post a Comment