जबकि आपको यह याद रखने की आवश्यकता है कि थ्रेड सुरक्षा को आसपास के कोड को भी ध्यान में रखना है, आप भाग्य में हैं। तथ्य यह है कि मैचर्स पैटर्न के मिलान कारखाने विधि का उपयोग करके बनाए गए हैं और सार्वजनिक निर्माणकर्ताओं की कमी एक सकारात्मक संकेत है। इसी तरह, आप कंपाइलिंग पैटर्न को बनाने के लिए कंपाइल स्टेटिक विधि का उपयोग करते हैं ।
तो, संक्षेप में, यदि आप उदाहरण की तरह कुछ करते हैं:
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
आपको बहुत अच्छा करना चाहिए।
स्पष्टता के लिए कोड उदाहरण के लिए अनुवर्ती: ध्यान दें कि इस उदाहरण का तात्पर्य यह है कि मिलानकर्ता इस प्रकार बनाया गया पैटर्न और परीक्षण के साथ थ्रेड-लोकल है। यानी, आपको मिलानकर्ता को इस तरह से किसी अन्य थ्रेड्स के लिए तैयार नहीं करना चाहिए।
सच कहूं तो, यह किसी भी थ्रेड-सुरक्षा प्रश्न का जोखिम है। वास्तविकता यह है कि यदि आप पर्याप्त प्रयास करते हैं तो किसी भी कोड को थ्रेड-असुरक्षित बनाया जा सकता है। सौभाग्य से, ऐसी अद्भुत पुस्तकें हैं जो हमें ऐसे तरीके सिखाती हैं जिनसे हम अपना कोड बर्बाद कर सकते हैं। यदि हम उन गलतियों से दूर रहते हैं, तो हम समस्याओं को फैलाने की अपनी संभावना को बहुत कम कर देते हैं।
compile()
विधि नहीं हो सकती है। इन वर्षों में दो या तीन कीड़े हो गए हैं जो बहुपरत वातावरण में असफलता का कारण बनते हैं। मैं संकलित ब्लॉक में संकलन करने की सलाह दूंगा।