Wat is het verschil tussen het testen van een slotvrije datastructuur en een datastructuur met slot?


Antwoord 1:

Of vergrendeling al dan niet plaatsvindt, is een implementatiedetail, geen waarneembaar gedrag, dus er zou geen verschil zijn in de eenheidstests die u zou schrijven.

In beide gevallen wilt u zware gelijktijdige belasting simuleren om ervoor te zorgen dat als er een plaats is die niet op de juiste manier wordt beveiligd door een synchronisatiemechanisme (al dan niet op basis van vergrendeling), u een zo groot mogelijke kans hebt om te raken de race conditie en het hebben van een test mislukken.

Prestatietests voor verschillende soorten workloads zijn ook nodig, vooral als u lock-gebaseerde implementaties wilt vergelijken met lock-free implementaties. De twee benaderingen kunnen verschillende prestatiekenmerken hebben als de belasting varieert.