का उपयोग करके सरल सी ++ लॉगर सिंगलटन पैटर्न का उपयोग करके लॉगर को लागू करने के बाढ़ के उदाहरणों के कारण, मैंने अपने कार्यक्रम के लिए एक ही दृष्टिकोण में एक साधारण सी ++ लॉगर लिखा है। हालांकि, चूंकि प्रसिद्ध डबल-चेक लॉकिंग दृष्टिकोण को और अधिक थ्रेड-सुरक्षित नहीं माना जाता है, मुझे आश्चर्य है कि मुझे चाहिए:सिंगलटन पैटर्न
1) इस मामले में सिंगलटन पैटर्न के उपयोग के बारे में भूल जाओ?
2) डबल-चेक लॉकिंग का उपयोग करना जारी रखें, भले ही यह असुरक्षित है?
3) अपने सार्वजनिक इंटरफेस के हर एक्सेस के लिए महंगी शुद्ध सिंक लॉक विधि का उपयोग करें?
कोई सुझाव?
वाह, मुझे उम्मीद नहीं थी कि प्रतिक्रिया इतनी तेजी से आती है। मुझे बस एहसास हुआ कि मैंने एक बेवकूफ गलती की है। मेरे मामले में इंटरफ़ेस के मूल रूप से दो समूह होते हैं जिन्हें सुरक्षा की आवश्यकता होती है: getInstance(), और बाकी लॉग लॉग क्लाइंट के लिए विभिन्न लॉग सेटिंग्स को प्रारंभ करने के लिए हैं। मेरी गलती यह थी कि, मैं एक ऐसे दृष्टिकोण को खोजने में काफी समय बिता रहा हूं जो संतुलित दक्षता के साथ दोनों प्रकार के इंटरफेस की रक्षा करेगा। मुझे एक का उपयोग क्यों करना चाहिए, और केवल एक दृष्टिकोण? मैं getInstance() के लिए या तो Arkaitz या Stefaanv से सुझाव का उपयोग कर सकते हैं; फिर सेटिंग प्रारंभ करने के लिए मूल सिंक लॉक का उपयोग करें। – shiouming