Questo post Γ¨ un seguito al mio precedente post sul blocking e spinning e vuole essere un piccolo approfondimento sulle nuove struct SpinLock e SpinWait
di NET 4.
Come ho scritto nel post, in caso di attese molto brevi lo spinning puΓ² essere preferibile al blocking in quanto evita overhead di context switch.
Gli oggetti SpinLock
e SpinWait
sono state pensate esattamente per questo caso.
Eβ importante sottolineare che tali oggetti non sono classi ma sono struct
. Questa scelta Γ¨ stata presa per fare in modo che siano sullo Stack senza mai passare per lo Heap e conseguentemente eliminare il costo di allocazione e garbage collection.