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

Popular posts from this blog

eclipse plugin - Run java code error: Workspace is closed -

ios - How do I use CFArrayRef in Swift? -

scala - Play Framework - how to bind form to a session field -