Zakleszczenie

Zakleszczenie to sytuacja, w której program nie może uzyskać dostępu do zasobu potrzebnego do dalszego działania. Gdy aktywna aplikacja napotka zakleszczenie, może się „zawiesić” lub przestać odpowiadać.

Zasoby, takie jak zapisane lub zapisane w pamięci podręcznej dane, mogą zostać zablokowane podczas uzyskiwania do nich dostępu przez określony proces w programie. Zablokowanie danych uniemożliwia innym procesom ich przedwczesne nadpisanie. Jeśli proces lub zapytanie musi uzyskać dostęp do zablokowanych danych, ale proces, który je zablokował, nie zwolni blokady, może wystąpić zakleszczenie.

Na przykład poniższa sytuacja spowoduje zakleszczenie między dwoma procesami:

  • Proces 1 żąda zasobu B od procesu 2.
  • Zasób B jest zablokowany, gdy działa proces 2.
  • Proces 2 potrzebuje zasobu A od procesu 1, aby zakończyć działanie.
  • Zasób A jest zablokowany, gdy działa proces 1.

W rezultacie proces 1 i proces 2 czekają na zakończenie działania drugiego procesu. Ponieważ żaden z procesów nie może kontynuować działania, dopóki drugi się nie zakończy, powstaje zakleszczenie.

Unikanie zakleszczeń

Programiści mogą zapobiegać zakleszczeniom, unikając sytuacji blokowania w logice swoich programów. Na przykład zamiast uzależniać od siebie dwa procesy, kod źródłowy można napisać tak, aby każdy wątek kończył działanie, zanim inny wątek będzie potrzebować jego zasobów. Zapewniając dostępność danych wtedy, gdy są potrzebne, programiści mogą chronić swoje aplikacje przed zawieszaniem się lub awariami.

NOTE: Zakleszczenia mogą również wystąpić, gdy na bazie danych wykonywane są co najmniej dwa zapytania. Bazy danych obsługujące transakcje blokują aktywne rekordy, uniemożliwiając innym zapytaniom dostęp do nich. Jeśli proces nie może uzyskać dostępu do zablokowanego rekordu, może wystąpić zakleszczenie bazy danych.

Zaktualizowano January 18, 2020 przez Per C.

quizSprawdź swoją wiedzę

Greenfield development refers to what?

A
Developing software with limited resources.
0%
B
Building a new software program from scratch.
0%
C
Creating eco-friendly applications.
0%
D
Programming in an environmentally-friendly way.
0%
Correct! Incorrect!     View the Greenfield definition.
More Quizzes →

Słownik komputerowy Tech Terms

Definicja Zakleszczenie na tej stronie jest oryginalną definicją napisaną przez autorów TechTerms.com. Jeśli chcesz odwołać się do tej strony lub zacytować tę definicję, użyj zielonego paska cytowania bezpośrednio poniżej definicji.

Naszym celem jest wyjaśnianie terminologii komputerowej w prosty i zrozumiały sposób. Dążymy do dokładności i prostoty w każdej publikowanej definicji. Jeśli masz uwagi lub chcesz zaproponować nowy termin techniczny, skontaktuj się z nami.

Newsletter Tech Terms

Poszerzaj swoją wiedzę techniczną dzięki naszemu codziennemu lub tygodniowemu newsletterowi! Subskrybuj już dziś i otrzymuj nowe terminy oraz quizy prosto do skrzynki odbiorczej.

Zapisz się do bezpłatnego newslettera TechTerms

Jak często chcesz otrzymywać e-maile?

Możesz wypisać się lub zmienić częstotliwość w dowolnym momencie, korzystając z linków w każdym e-mailu. Pytania? Skontaktuj się z nami.

Uwaga: Newsletter jest wysyłany w języku angielskim.