Bezpečnost závitů je programovací koncept použitelný pro vícevláknové programy . Kód je bezpečný pro vlákna, pokud funguje správně při použití z více vláken současně. Zejména musí zajistit, aby ke sdíleným datům správně přistupovalo více vláken.
Obecně je obtížné dosáhnout bezpečnosti závitu. Existuje však několik zdrojů pro detekci porušení bezpečnosti vláken:
Existuje několik způsobů, jak dosáhnout bezpečnosti závitu:
Reentrancy Psaní kódu takovým způsobem, že jej může částečně spustit jedno vlákno, pak další a pokračovat v tom prvním. To vyžaduje uložení stavu do lokálních proměnných, obvykle na zásobníku, namísto globálních nebo statických proměnných . Linearizovatelnost Psaní kódu procedur (operací) takovým způsobem, že výsledek libovolného jejich paralelního provádění je ekvivalentní nějakému sekvenčnímu provádění.