Wie überprüfe ich, ob ein Objekt @synchronisiert wird?

Manchmal habe ich den folgenden Code geschrieben, um eine Routine zu synchronisieren:

@synchronized(objToBeSync){ .... }

Wenn zwei Threads gleichzeitig versuchen, auf den Synchronisationsblock zuzugreifen, blockiert einer die anderen, bis der eine den Synchronisationsblock verlässt.

Manchmal möchte ich jedoch nicht, dass das eine das andere blockiert, sondern dass die anderen prüfen, ob das Objekt synchronisiert wird, und dann etwas anderes tun, damit ich etw wie folgt tun muss:

@synchronized(objToBeSync){
    _isBeingSync = YES;
    ... 
    _isBeingSync = NO;
}

_isBeingSync ist eine zusätzliche Variable zur Überprüfung, ob objToBeSync synchronisiert wird. Die anderen Threads prüfen_isBeingSync bevor sie ihre Arbeit fortsetzen. Und meine Frage ist, dass objc etwas bietet, um objToBeSync direkt zu überprüfen, aber keine zusätzliche Variable einführt, um den Status zu markieren.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage