Wie oft verwenden Sie tatsächlich Spinlocks in Ihrem Code? Wie häufig kommt es vor, dass die Verwendung einer Busy-Loop die Verwendung von Sperren übertrifft?
Wenn ich persönlich einen Code schreibe, der Threadsicherheit erfordert, neige ich dazu, ihn mit verschiedenen Synchronisationsprimitiven zu vergleichen, und soweit es geht, scheint die Verwendung von Sperren eine bessere Leistung als die Verwendung von Spinlocks zu bringen. Unabhängig davon, wie lange ich die Sperre tatsächlich halte, ist die Menge an Konflikten, die ich bei der Verwendung von Spinlocks erhalte, weitaus größer als die Menge, die ich bei der Verwendung von Sperren erhalte (natürlich führe ich meine Tests auf einer Multiprozessormaschine durch).
Mir ist klar, dass es wahrscheinlicher ist, in "Low-Level"-Code auf ein Spinlock zu stoßen, aber mich interessiert, ob Sie es auch in einer High-Level-Programmierung nützlich finden?
5 Stimmen
Im Großen und Ganzen können Spinlocks "die Arbeit erledigen" (Synchronisation). Ich beobachte dies, um eine Antwort auf "Gibt es irgendwelche Situationen in C#, wo ein Spinlock eine geeignete Synchronisationsmethode ist?" zu sehen.