2016-03-03 5 views
6

मान लीजिए मैं java.util.concurrent.locks.Lockनिर्धारित

का एक उदाहरण यह निर्धारित करने ताला वर्तमान धागा द्वारा आयोजित किया जाता है क्या यह संभव है है?

मान लें ताला वस्तु केवल Lock इंटरफ़ेस लागू करता है और नहीं, जरूरी रैत्रांत है तो lock या tryLock के लिए कॉल ताला जाँच करने के लिए एक अच्छा तरीका नहीं हो सकता।

उत्तर

12

Lock इंटरफ़ेस स्वयं ऐसी कार्यक्षमता प्रदान नहीं करता है, लेकिन इसके सामान्य कार्यान्वयनकर्ता, ReentrantLock में ऐसी विधि है: ReentrantLock.isHeldByCurrentThread()

नोट, हालांकि, दस्तावेज़ के अनुसार, इस विधि का मुख्य उद्देश्य डिबगिंग, दावे और परीक्षण है। यदि आपको सामान्य प्रोग्राम तर्क के लिए इसकी आवश्यकता है, तो शायद कुछ बेहतर समाधान है।

+2

धन्यवाद, बस पुष्टि करें। वर्तमान में मेरे पास सदस्यों को 'लॉक' प्रकार के रूप में घोषित किया गया है और उन्हें कुछ रिफैक्टरिंग करने की आवश्यकता होगी :) – arcyqwerty

+0

ओह, और हाँ, मैं इसका उपयोग दावे के लिए कर रहा हूं, प्रोग्राम लॉजिक में गहराई से जहां मैं यह सुनिश्चित करना चाहता हूं कि उचित लॉक हो। अच्छे प्रथाओं को बढ़ावा देने के लिए धन्यवाद! – arcyqwerty

संबंधित मुद्दे