2013-06-17 4 views
5

मैंने देखा कि '* लॉक()' नामक विधियों का बहुत उपयोग है, जबकि मैं एंड्रॉइड फ्रेमवर्क कोड देख रहा हूं। मुझे आश्चर्य है कि 'लॉक' का अर्थ क्या है और उन तरीकों को किस प्रकार प्रदर्शित किया जा रहा है।गतिविधि से संबंधित वर्गों में '* लॉक()' नामक विधियों का क्या अर्थ है?

उदाहरण के लिए, गतिविधि से संबंधित वर्गों में इस तरह से नामित कई विधियां हैं।

एंड्रॉयड/चौखटे/आधार/सेवाओं/जावा/com/एंड्रॉयड/सर्वर/बजे/ActivityStack.java

  • startActivityLocked()
  • ensureActivitiesVisibleLocked()
  • resumeTopActivityLocked()

अग्रिम में आपकी सहायता के लिए धन्यवाद! :)

उत्तर

2

इसका मतलब है कि विधि बहु-सुरक्षित है।

0

मुझे लगता है इसका मतलब है कि यह मीट्रिक टन सुरक्षित के लिए बंद होने की आवश्यकता है,

यहाँ दोनों जावा/सी ++ कोड के लिए कुछ उदाहरण हैं,

http://androidxref.com/5.0.0_r2/xref/frameworks/base/core/java/android/app/ContextImpl.java#1007

http://androidxref.com/5.0.0_r2/xref/frameworks/minikin/libs/minikin/MinikinRefCounted.cpp#25

2

आप पा सकते हैं ActivityManagerService.class से कोड नीचे की तरह:

synchronized (this) { 
    dumpActivitiesLocked(fd, pw, args, opti, true, dumpClient, null); 
} 
,210

या ऐसा कुछ कोड:

synchronized (this) { 
    methodA(); 
} 
methodA() { 
    dumpActivitiesLocked(fd, pw, args, opti, true, dumpClient, null); 
} 

तो तरीकों * बंद नामित विधि का मतलब नहीं multithread-सुरक्षित, ActivityManagerService.class में, आप सिंक्रनाइज़ उपयोग करना चाहिए (इस) सुनिश्चित करें कि multithread सुरक्षित बनाते हैं।

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