Strupceļš ir situācija datu apstrādes sistēmā, kad divi vai vairāki procesi, kas pieprasa vienus un tos pašus resursus, bloķē viens otru. Strupceļu gadījumā abi procesi gaida viens otra uzdevuma pabeigšanu, lai varētu turpināt. Tam rezultātā abi procesi „uzkaras”. Strupceļi ir viena no galvenajām problēmām vairākuzdevumu sistēmā, paralēlajā skaitļošanā un dalītajās sistēmās, jo tur programmatūras un aparatūras atslēgas tiek izmantotas, lai pārvaldītu koplietojamos resursus un īstenotu procesu sinhronizāciju. Ideālā gadījumā programmai vai operētājsistēmai, kurā rodas strupceļš, pašai vajadzētu to atrisināt, taču tā ne vienmēr notiek.