2013-06-17 9 views
5

Ich habe festgestellt, dass die Methoden mit dem Namen '* Locked()' sehr häufig verwendet werden, während ich die Android-Framework-Codes durchsuche. Ich frage mich, was "gesperrt" bedeutet und welche Funktionen diese Methoden widerspiegeln.Was bedeuten Methoden mit dem Namen '* Locked()' in Aktivitäten bezogenen Klassen?

Zum Beispiel gibt es eine Reihe von Methoden, die auf diese Weise in Activity related classes benannt sind.

android/Frameworks/base/services/java/com/android/server/am/ActivityStack.java

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

Vielen Dank für Ihre Hilfe im Voraus! :)

Antwort

2

Das bedeutet, dass die Methode multithread-sicher ist.

2

Sie finden Code von ActivityManagerService.class wie unten:

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

oder einige Code wie folgt aus:

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

So sind die genannten Methoden * die Methode Gesperrt bedeutet nicht Multithreading-Safe, in ActivityManagerService.class, sollten Sie (das) sicherstellen, dass die Multi-Thread-sichere Anwendung synchronisiert.

Verwandte Themen