Как да се справим със задънена улица в Java?



Тази статия обхваща концепцията за Deadlock In Java с пример, който показва как нишките в многонишковата програма се блокират.

Поддържа език за програмиране Java . Той включва множество нишки, работещи едновременно за многозадачност. Но в определени случаи или поради определени недостатъци нишките се оказват завинаги в чакащо състояние. В тази статия ще разберем състоянието на блокиране в и различни начини да го избегнете. Следват темите, обсъдени в този блог:

Какво представлява Deadlock в Java?

Deadlock в Java е състояние, при което две или повече нишки са блокирани завинаги в очакване една на друга.





възходящ ред c ++

Това обикновено се случва, когато множество нишки се нуждаят от едни и същи ключалки, но ги получават в различни подреждания. в Java страда от задънена улица поради синхронизираната ключова дума.

Това води до блокиране на изпълняващата нишка, докато чака заключването или монитора, свързани с посоченото обект .



Тупик в Java - Edureka

Пример за задънена улица

публичен клас Пример {public static void main (String [] args) {final String r1 = 'edureka' final String r2 = 'java' Thread t1 = new Thread () {public void run () {synchronized (r1) {System. out.println ('Thread 1: Locked r1') опитайте {Thread.sleep (100)} catch (изключение e) {} синхронизирано (r2) {System.out.println ('Thread 1: Locked r2')}}} } Thread t2 = new Thread () {public void run () {synchronized (r1) {System.out.println ('Thread 2: Locked r1') опитайте {Thread.sleep (100)} catch (изключение e) {} синхронизиран (r2) {System.out.println ('Тема 2: Заключена r2')}}}} t1.start () t2.start ()}}
 Изход: Тема 1: Заключена r1 Тема 2: Заключена r2

Как да избегнем задънена улица в Java?

Въпреки че не е напълно възможно да се избегне блокиране, но можем да следваме определени мерки или указатели, за да ги избегнем:

  • Избягвайте вложени ключалки - Трябва да избягвате да давате заключвания на множество нишки, това е основната причина за състояние на блокиране. Обикновено се случва, когато давате ключалки на множество нишки.

  • Избягвайте излишните ключалки - Бравите трябва да се дадат на важните нишки. Даване на брави на ненужните нишки, които причиняват състоянието на блокиране.



  • Използване на Thread Join - Тупик обикновено се случва, когато една нишка чака другата да завърши. В този случай можем да използваме Thread.join с максимално време, което нишката ще отнеме.

Това ни води до края на тази статия, където научихме за задънената улица в Java и как да я избегнем. Надявам се, че сте наясно с всичко споделено с вас в този урок.

сбор от цифри в java

Ако сте намерили тази статия за „Deadlock In Java“ подходяща, разгледайте доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят.

Ние сме тук, за да ви помогнем във всяка стъпка по вашето пътуване и да изготвим учебна програма, предназначена за студенти и професионалисти, които искат да бъдат разработчик на Java. Курсът е предназначен да ви даде начален старт в програмирането на Java и да ви обучи както за основни, така и за разширени Java концепции, заедно с различни като Хибернация & .

Ако попаднете на някакви въпроси, не се колебайте да зададете всичките си въпроси в раздела за коментари на „Deadlock In Java“ и нашият екип ще се радва да отговори.