Deadlock

Een deadlock is een toestand waarin een programma geen toegang heeft tot een resource die het nodig heeft om door te gaan. Wanneer een actief programma in een deadlock terechtkomt, kan het "vastlopen" of niet meer reageren.

Resources, zoals opgeslagen of gecachte gegevens, kunnen worden vergrendeld wanneer ze worden geopend door een specifiek proces binnen een programma. Door de gegevens te vergrendelen, wordt voorkomen dat andere processen de gegevens voortijdig overschrijven. Als een proces of query toegang nodig heeft tot vergrendelde gegevens, maar het proces dat de gegevens vergrendelt deze niet vrijgeeft, kan er een deadlock optreden.

De volgende situatie veroorzaakt bijvoorbeeld een deadlock tussen twee processen:

  • Proces 1 vraagt resource B op bij proces 2.
  • Resource B is vergrendeld terwijl proces 2 wordt uitgevoerd.
  • Proces 2 heeft resource A van proces 1 nodig om de uitvoering te voltooien.
  • Resource A is vergrendeld terwijl proces 1 wordt uitgevoerd.

Het resultaat is dat proces 1 en proces 2 op elkaar wachten totdat de ander klaar is. Omdat geen van beide processen kan doorgaan totdat het andere proces is voltooid, ontstaat er een deadlock.

Deadlocks voorkomen

Ontwikkelaars kunnen deadlocks voorkomen door vergrendelingssituaties in hun programmeerlogica te vermijden. In plaats van twee processen van elkaar afhankelijk te maken, kan de broncode bijvoorbeeld zo worden geschreven dat elke thread wordt voltooid voordat een andere thread de resources ervan nodig heeft. Door ervoor te zorgen dat gegevens toegankelijk zijn wanneer dat nodig is, kunnen programmeurs voorkomen dat hun programma's vastlopen of crashen.

NOTE: Deadlocks kunnen ook optreden wanneer twee of meer query's op een database worden uitgevoerd. Transactionele databases vergrendelen actieve records, waardoor andere query's er geen toegang toe hebben. Als een proces geen toegang heeft tot een vergrendelde record, kan er een deadlock in de database optreden.

Bijgewerkt January 18, 2020 door Per C.

quizTest je kennis

What are metaheuristics in software programming?

A
Principles or guidelines that establish algorithm heuristics
0%
B
Specific heuristics for different types of applications
0%
C
Heuristics that have been proven not to work
0%
D
New heuristics that haven't been used before
0%
Correct! Incorrect!     View the Metaheuristic definition.
More Quizzes →

Het Tech Terms computerwoordenboek

De definitie van Deadlock op deze pagina is een originele definitie geschreven door de auteurs van TechTerms.com. Als je naar deze pagina wilt verwijzen of deze definitie wilt citeren, gebruik dan de groene citatiebalk direct onder de definitie.

Ons doel is om computerterminologie op een begrijpelijke manier uit te leggen. We streven naar nauwkeurigheid en eenvoud bij elke definitie die we publiceren. Als je feedback hebt over deze definitie of een nieuwe technische term wilt voorstellen, neem dan contact met ons op.

De Tech Terms-nieuwsbrief

Verbeter je technische kennis met onze dagelijkse of wekelijkse nieuwsbrief! Abonneer je vandaag nog en ontvang nieuwe termen en quizzen in je inbox.

Schrijf je in voor de gratis TechTerms-nieuwsbrief

Hoe vaak wil je een e-mail ontvangen?

Je kunt je op elk moment uitschrijven of je frequentie wijzigen via de links in elke e-mail. Vragen? Neem contact met ons op.

Let op: de nieuwsbrief wordt in het Engels verzonden.