आपको लगता है कि धागा सुरक्षा के साथ-साथ आसपास के कोड को ध्यान में रखना है याद करने की आवश्यकता है, आप भाग्य में दिखाई देते हैं। तथ्य यह है कि Matchers पैटर्न की matcher फैक्टरी विधि का उपयोग करके बनाए गए हैं और सार्वजनिक रचनाकारों की कमी एक सकारात्मक संकेत है। इसी तरह, आप Pattern को बनाने के लिए compile स्थैतिक विधि का उपयोग करते हैं।
तो, संक्षेप में, आप उदाहरण की तरह कुछ करना है, तो:
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
आप बहुत अच्छी तरह से करना चाहिए।
स्पष्टता के लिए कोड उदाहरण का पालन करें: ध्यान दें कि इस उदाहरण का दृढ़ता से तात्पर्य है कि इस प्रकार बनाई गई मैचर पैटर्न और परीक्षण के साथ थ्रेड-लोकल है। यानी, आपको इस प्रकार किसी भी अन्य थ्रेड के लिए बनाए गए Matcher का पर्दाफाश नहीं करना चाहिए।
स्पष्ट रूप से, यह किसी भी थ्रेड-सुरक्षा प्रश्न का जोखिम है। वास्तविकता यह है कि कोई भी कोड थ्रेड-असुरक्षित बनाया जा सकता है यदि आप पर्याप्त मेहनत करते हैं। सौभाग्य से, wonderfulbooks हैं जो हमें उन तरीकों का पूरा समूह सिखाते हैं जिन्हें हम अपने कोड को बर्बाद कर सकते हैं। अगर हम उन गलतियों से दूर रहते हैं, तो हम थ्रेडिंग समस्याओं की अपनी संभावना को बहुत कम करते हैं।
स्रोत
2009-09-01 01:11:18
पैटर्न ऑब्जेक्ट्स थ्रेड सुरक्षित हैं, लेकिन 'संकलन()' विधि नहीं हो सकती है।पिछले कुछ वर्षों में दो या तीन बग हैं जो बहुसंख्यक वातावरण में संकलन विफल हो गए हैं। मैं एक सिंक्रनाइज़ ब्लॉक में संकलन करने की सिफारिश करेंगे। –
हां, पैटर्न कक्षा में उठाए गए समवर्ती बग हैं, और सिंक्रनाइज़ पहुंच की आपकी सलाह की सराहना की जाती है। हालांकि, पैटर्न वर्ग के मूल डेवलपर्स ने पैटर्न वर्ग को थ्रेड सुरक्षित बनाने का इरादा किया था, और वह अनुबंध है कि किसी भी जावा प्रोग्रामर पर भरोसा करने में सक्षम होना चाहिए। स्पष्ट होने के लिए, मेरे पास थ्रेड स्थानीय चर होंगे और अनुबंध द्वारा थ्रेड सुरक्षित व्यवहार पर भरोसा करने से न्यूनतम प्रदर्शन हिट स्वीकार करेंगे (जब तक कि मैंने कोड नहीं देखा हो)। जैसा कि वे कहते हैं "थ्रेडिंग आसान है, सही सिंक्रनाइज़ेशन कठिन है"। –
ध्यान दें कि "पैटर्न" का स्रोत ओरेकल जेडीके वितरण में है (http://www.oracle.com/technetwork/java/faq-141681.html#A14 के अनुसार: "जावा 2 एसडीके, मानक संस्करण में स्वयं शामिल है src.zip नामक एक फ़ाइल जिसमें जावा पैकेज में सार्वजनिक कक्षाओं के लिए स्रोत कोड शामिल है ") ताकि कोई भी अपने आप को तुरंत देख सकें। –