Aufwand für Pthread-Mutexe?
Ich versuche, eine C ++ - API (für Linux und Solaris) threadsicher zu machen, damit ihre Funktionen aus verschiedenen Threads aufgerufen werden können, ohne interne Datenstrukturen zu beschädigen. In meinem aktuellen Ansatz verwende ich pthread-Mutexe, um alle Zugriffe auf Mitgliedsvariablen zu schützen. Dies bedeutet, dass eine einfache Getter-Funktion jetzt einen Mutex sperrt und entsperrt, und ich mache mir Sorgen über den Overhead, zumal die API hauptsächlich in Singlethread-Apps verwendet wird, in denen jede Mutex-Sperre als reiner Overhead erscheint.
Also, ich möchte fragen:
Haben Sie Erfahrung mit der Leistung von Single-Thread-Anwendungen, die Sperren verwenden, im Vergleich zu Anwendungen, die dies nicht tun?Wie teuer sind diese Sperr- / Entsperr-Anrufe im Vergleich zu z. ein einfacher "return this-> isActive" -Zugriff für eine Bool-Member-Variable?Kennen Sie bessere Möglichkeiten, um solche variablen Zugriffe zu schützen?