Es gibt auch im Delphi seit Jahrzehnten einen
TMREWSync / TMultiReadExclusiveWriteSynchronizer.
Geschwindgkeit kann ich nicht sagen, aber natürlich ist das bissl langsamer.
So ist oftmals die CriticalSection auch bissl langsamer, als t.B. das TMonitor (aus der System-
Unit, nicht zu verwechseln mit TMonitor der
VCL)
Wobei die CriticalSection aber auch andere Vorteile hat, z.B. schreibt sie ins Log und man kann live oder nachträglich analysen drüber auswerten.
Beim Verschachteln muß man aber echt aufpassen, dass man sich keinen Deadlock einbaut.
Innerhalb einer Schreitsperre eine neue Lesesperre, ist kein Problem (so lange im selben Thread)
aber innerhalb einer Lesesperre noch eine Schreibsperre öffnen zu wollen, das gibt Probleme, wenn es nicht nur eine einzige Stelle gibt, die sowas macht, und sie auch nie mehrmals gleichzeitig ausgeführt werden tut.