@synchronized vs. NSLock-Instanz vs. pthread_mutex_t

8

Ich habe mir ein (2 Jahre altes) Tutorial-Video zum Thema Multithreading angeschaut, das besagt, dass

  • NSLock-Instanz ist 3x schneller als @synchronized
  • pthread_mutex_t ist 2x schneller als eine NSLock-Instanz (effektiv 6x schneller als @synchronized )

Stimmt das? Ich habe nichts gefunden, was mit Autorität gesagt hat, aber ich wollte nur einige von Ihnen bei StackOverflow für Ihre Meinung und vielleicht solide Beweise abfragen.

Danke!

Obwohl ich die richtige Antwort bereits akzeptiert habe, werden zukünftige Zuschauer dieser Frage diesen Artikel als hilfreich empfinden: Ссылка

    
ArtSabintsev 10.04.2012, 18:29
quelle

1 Antwort

12

Beachten Sie, dass @synchronized die erforderliche try / catch-Logik enthält, um die Sperre in einer Ausnahme freizugeben. Sobald Sie diese Logik hinzufügen, wird der Leistungsunterschied (der in der Gesamtgröße nicht groß ist) wahrscheinlich signifikant abnehmen.

    
Hot Licks 10.04.2012, 20:18
quelle