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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: