Поддържа език за програмиране Java . Той включва множество нишки, работещи едновременно за многозадачност. Но в определени случаи или поради определени недостатъци нишките се оказват завинаги в чакащо състояние. В тази статия ще разберем състоянието на блокиране в и различни начини да го избегнете. Следват темите, обсъдени в този блог:
Какво представлява Deadlock в Java?
Deadlock в Java е състояние, при което две или повече нишки са блокирани завинаги в очакване една на друга.
възходящ ред c ++
Това обикновено се случва, когато множество нишки се нуждаят от едни и същи ключалки, но ги получават в различни подреждания. в Java страда от задънена улица поради синхронизираната ключова дума.
Това води до блокиране на изпълняващата нишка, докато чака заключването или монитора, свързани с посоченото обект .
Пример за задънена улица
публичен клас Пример {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“ и нашият екип ще се радва да отговори.