Threads
Tråde eksisterer i en proces. En proces kan have flere tråde og kan dermed eksekvere kode parallelt (multithreading)
Thread-Safe
Er når en metode kan blive tilgået af flere tråde på en gang, uden at give uventet adfærd/output. Hvis ikke en metode er thread-safe, kan metodens adfærd være uforudsigelig.
Lock
Sørger for at kun én thread kan tilgå ressourcen. Man låser ressourcen for andre tråde. Lock bruges til at opnå mutual exclusion
Deadlock
Når to threads venter på hinanden og et program derfor ikke kan komme videre
Mutual Exclusion
Sørger for at kun en thread kan tilgå ressourcen. Man låser ressourcen for andre tråde.
Circular wait
Hvor processer venter på hinanden fordi de blokerer for hinanden.
Recursion
Når en funktion eller en metode kalder sig selv. Det er vigtigt både at have en base case og en recursive case, så man ikke ender i uendelig rekursion.
Producer
Tråde der genererer data og sætter dem i en buffer, så consumer kan bruge dem.
Consumer
Tråde der bruger det data som producer har sat i buffer.
Interlocking
En måde at udføre en atomar operation på en tråd af gangen.
Semaphore
Styrer, hvor mange tråde der må få adgang til delte ressourcer, af gangen
UI thread
Den tråd som står for at håndtere input/output og opdatering af UI.
Background thread
En tråd som laver arbejde i baggrunden som ikke direkte hører til UI.