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.

SpinLock

SpinWait