Užraktas (programavimas)
Užraktas (angl. lock) – programavime naudojama sąvoka, apibūdinanti objektą, saugantį įėjimą į kodo sekcijas, kurių vykdymas vienu metu (lygiagrečiose gijose) yra negalimas arba apribotas. Užraktas paprastai būna atsakingas už vienos konkrečios duomenų struktūros (vieno duomenų bazės įrašo, duomenų bazės indekso, grafinės vartotojo sąsajos komponento ir pan.) apsaugojimą nuo vienmetinio keitimo iškart keliomis gijomis. Tokie keitimai sukuria lenktynių aplinką ir gali sugadinti duomenų struktūros turinį. Užraktas pats yra objektas. Užraktas turi bent vieną užrakinimo ir bent vieną atrakinimo metodą. Naujai sukurtas užraktas yra „atrakintas“. Gija, norinti keisti jo saugomą objektą, pirmiausia kviečia užrakto užrakinantį metodą, o baigusi keitimus – atrakinantį metodą. Jei tuo metu, kuomet užraktas užrakintas, jo užrakinimo metodą dar kartą kviečia kitos vykdymo gijos, šių gijų vykdymas pristabdomas, kol pirmoji gija užraktą atrakins. Atrakinus užraktą, viena iš laukiančių gijų „atgaivinama“, kartu jį užrakinant dabar jau šiai gijai. Paprastai užraktą gali atrakinti tik ta vykdymo gija, kuri jį užrakino.