W tym artykule nauczymy się poniżej na liście aspektów impasów w Javie:
A więc zacznijmy!
Co to jest impas?
Deallock opisuje sytuację, w której dwa kolejne wątki próbują jednocześnie uzyskać dostęp do tego samego zasobu, w wyniku czego nikt nie otrzymuje zasobu i ostatecznie jest zablokowany na zawsze.
Kiedy i gdzie może wystąpić impas
W Javie scenariusz impas może wystąpić tylko w wieloosobowym środowisku, w którym więcej niż jeden wątek wykonuje się jednocześnie. Ponadto zsynchronizowane słowo kluczowe może spowodować impas w Javie.
Z powyższego figury możemy zauważyć, że Thread1 czeka, aż Thread2 zwolni zasoby i odwrotnie.
Przykłady impasu
Rozważmy poniżej uzyskany przykład, aby głębokie zrozumienie, w jaki sposób impas występuje w Javie:
Klasa publiczna DeadlockexampleW tym przykładzie mamy dwa wątki Thread1 i Thread2, oba wątki rozpoczynają się i wywołują metodę run ().
Poniżej pojawią się wyjście dla powyższego fragmentu:
Z powyższego fragmentu jasne jest, że oba wątki zablokowały się.
Jak zapobiec impasowi w Javie
Poniżej znajduje się lista zapobiegania, które można przyjąć, aby uniknąć impasu w Javie:
Wniosek
Deallock opisuje sytuację, w której dwa kolejne wątki próbują jednocześnie uzyskać dostęp do tego samego zasobu, w wyniku czego nikt nie otrzymuje zasobu i ostatecznie jest zablokowany na zawsze. W Javie impas występuje tylko w środowisku wielowątkowym, w którym więcej niż jeden wątek wykonuje się jednocześnie. Ponadto zsynchronizowane słowo kluczowe może spowodować impas w Javie. W Javie nie można całkowicie rozwiązać impasu, jednak można go uniknąć, przyjmując pewne niezbędne środki ostrożności/zasady E.G. Unikanie użycia niepotrzebnych zamków, zagnieżdżonych zamków itp.
Ten zapis przedstawia szczegółowy przegląd tego, jakie są zakleszczenia w Javie, jak się zdarza i jak uniknąć zakleszczeń w Javie.