Multicore en synchronisatie
Welke methode is de meest gangbare om deadlock te voorkomen in een programma met meerdere locks?
- AAlle threads nemen de locks in dezelfde, voor het hele programma vastgelegde volgorde
- BEen lock die is genomen nooit meer vrijgeven
- CHet aantal threads beperken tot twee of minder
Antwoord en toelichting tonen
Antwoord: A. Alle threads nemen de locks in dezelfde, voor het hele programma vastgelegde volgorde
Een deadlock ontstaat als een 'cirkel' van threads ontstaat die elk op de lock van de ander wachten. Als iedereen zich bijvoorbeeld houdt aan 'altijd eerst A en dan B nemen', ontstaat er geen thread die B vasthoudt en op A wacht, en dus geen cirkel. Andere methoden zijn alle benodigde locks tegelijk nemen, of bij mislukken de gehouden locks loslaten en opnieuw beginnen.