In Objective-C können Sie einen Block als synchronisiert auf ein Objekt deklarieren, indem Sie das Konstrukt @synchronized
verwenden. Es würde wie folgt aussehen:@synchronized in einer statischen Methode
@synchronized (self) {
// Do something useful
}
Aber ich bin neugierig, was genau self
bezieht sich auf, wenn Sie eine statische Methode haben (+
statt -
). Ich habe versucht, die Apple-Dokumente durchzusehen, und sie verweisen darauf, dass es in Ordnung ist, aber erkläre es nicht wirklich. Ich weiß, es funktioniert, ich bin nur neugierig, was es bedeutet.
Vielen Dank. Ich weiß, dass es etwas einfaches gab, was ich vermisste. – Itay
Beachten Sie, dass @synchronized (self) in einer Klassenmethode gefährlich sein kann, da für self ein anderes Objekt (Klasse) existiert, so dass immer noch gleichzeitig Zugriff auf die Methode zwischen diesen beiden Klassen bestehen kann –