¿Cómo compruebo si un objeto está siendo sincronizado?
A veces escribí el siguiente código para sincronizar una rutina:
@synchronized(objToBeSync){ .... }
Cuando dos subprocesos intentan acceder al bloque de sincronización al mismo tiempo, uno bloqueará los otros hasta que salga del bloque de sincronización.
Sin embargo, a veces no quiero que uno bloquee al otro, pero los otros comprueban si el objeto se está sincronizando, y luego hago otra cosa, así que tengo que hacer algo como esto:
@synchronized(objToBeSync){
_isBeingSync = YES;
...
_isBeingSync = NO;
}
_isBeingSync
es una var adicional en la verificación de si objToBeSync se está sincronizando. Los otros hilos verifican._isBeingSync
Antes de que continúen su trabajo. Y mi pregunta es si objc proporciona algo para verificar objToBeSync directamente pero no introduce una var adicional para marcar su estado.