Share via


SpinLock

A SpinLock struktúra egy alacsony szintű, kölcsönös kizárású szinkronizálási primitív, amely addig pörög, amíg a zárolás megszerzésére vár. Többmagos számítógépeken, ha a várakozási idő várhatóan rövid, és a versengés minimális, SpinLock akkor a többi zárolásnál jobban teljesít. Javasoljuk azonban, hogy csak akkor használja SpinLock , ha profilkészítéssel állapítja meg, hogy a System.Threading.Monitor módszer vagy a Interlocked metódusok jelentősen lassítják a program teljesítményét.

SpinLock akkor is meghozhatja a szál időszeletét, ha még nem szerezte meg a zárolást. Ezzel elkerülheti a szálprioritású inverziót, és lehetővé teszi a szemétgyűjtő számára a haladást. Amikor használ egy SpinLock, győződjön meg arról, hogy egyetlen szál sem tudja tartani a zár több mint egy nagyon rövid ideig, és hogy egyetlen szál sem blokkolhatja, amíg a zárolást tartja.

Mivel a SpinLock értéktípus, kifejezetten hivatkozva kell átadnia, ha a két példány ugyanarra a zárolásra kíván hivatkozni.

Ennek a típusnak a használatáról további információt a következő témakörben talál System.Threading.SpinLock. Példa: A SpinLock használata alacsony szintű szinkronizáláshoz.

SpinLocktámogatja a szálkövetési - módot, amelyet a fejlesztési fázisban használhat a zárolást egy adott időpontban tartó szál nyomon követéséhez. A szálkövetési mód nagyon hasznos a hibakereséshez, de azt javasoljuk, hogy kapcsolja ki a program kiadási verziójában, mert ez lelassíthatja a teljesítményt. További információ : How to: Enable Thread-Tracking Mode in SpinLock.

Lásd még