Verwenden von dispatch_sync als Mutex-Sperre

Folgendes muss ich tun. Ich hoffe, dispatch_sync ist der beste Weg, dies mit GCD zu tun

Ich habe einen bestimmten Teil des kritischen Abschnittscodes, der im applicationDidBecomeActive-Rückruf in Appdelegate abgelegt ist.

Ich fasse diese Methode in einem dispatch_sync-Aufruf zusammen, sodass sie nur einmal aufgerufen wird, unabhängig davon, wie oft applicationDidBecomeActive aufgerufen wird

- (void)applicationDidBecomeActive:(UIApplication *)application{    
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{    
    NSLog(@"Thread created");
    //crtical code
    [self runCriticalSection];        
});}

Ist dies die richtige Methode für die Verwendung von dispatch_sync?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage