Paano Pangasiwaan ang Deadlock Sa Java?



Saklaw ng artikulong ito ang konsepto ng Deadlock In Java ng isang halimbawa na nagpapakita kung paano naharang ang mga thread sa isang multi-threaded na programa.

Sinusuportahan ng wika ng programa ng Java . Nagsasangkot ito ng maraming mga thread na tumatakbo nang sabay-sabay para sa multitasking. Ngunit sa ilang mga kaso o dahil sa ilang mga pagkukulang, natagpuan ng mga thread ang kanilang sarili sa naghihintay na estado magpakailanman. Sa artikulong ito, mauunawaan namin ang kundisyon ng pagkamatay sa at iba`t ibang paraan upang maiwasan ito. Ang sumusunod ay mga paksang tinalakay sa blog na ito:

Ano ang Deadlock sa Java?

Ang Deadlock sa Java ay isang kundisyon kung saan ang dalawa o higit pang mga thread ay hinarangan magpakailanman, naghihintay sa bawat isa.





Karaniwan itong nangyayari kapag ang maraming mga thread ay nangangailangan ng parehong mga kandado ngunit makuha ang mga ito sa iba't ibang mga order. sa Java ay naghihirap mula sa sitwasyon ng pagkamatay dahil sa magkasabay na keyword.

Ito ay sanhi ng pag-block ng thread ng pagpapatupad habang hinihintay ang lock, o monitor, na nauugnay sa tinukoy bagay .



pl sql tutorial para sa mga nagsisimula

Deadlock sa Java - Edureka

Halimbawa ng Deadlock

pampublikong klase Halimbawa {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') subukan ang {Thread.s Sleep (100)} catch (pagbubukod e) {} sinabay (r2) {System.out.println ('Thread 1: Locked r2')}}} } Thread t2 = bagong Thread () {public void run () {synchronize (r1) {System.out.println ('Thread 2: Locked r1') subukan ang {Thread.s Sleep (100)} catch (exception e) {} naka-synchize (r2) {System.out.println ('Thread 2: Locked r2')}}}} t1.start () t2.start ()}}
 Output: Thread 1: Locked r1 Thread 2: Locked r2

Paano Maiiwasan ang Deadlock sa Java?

Bagaman hindi ito ganap na posible upang maiwasan ang kondisyon ng blocklock, ngunit maaari naming sundin ang ilang mga hakbang o payo upang maiwasan ang mga ito:

  • Iwasan ang Nests Locks - Dapat mong iwasan ang pagbibigay ng mga kandado sa maraming mga thread, ito ang pangunahing dahilan para sa isang kondisyon na patay. Karaniwan itong nangyayari kapag nagbigay ka ng mga kandado sa maraming mga thread.

  • Iwasan ang Hindi Kailangang Locks - Ang mga kandado ay dapat ibigay sa mahahalagang mga thread. Ang pagbibigay ng mga kandado sa mga hindi kinakailangang mga thread na sanhi ng kondisyon ng blocklock.



  • Paggamit ng Thread Sumali - Karaniwang nangyayari ang isang bara kapag naghihintay ang isang thread na matapos ng isa pa. Sa kasong ito, maaari naming gamitin ang Thread.join na may isang maximum na oras na aabutin ng isang thread.

Dadalhin tayo nito sa pagtatapos ng artikulong ito kung saan nalaman namin ang tungkol sa baliw sa Java at kung paano ito maiiwasan. Inaasahan kong malinaw ka sa lahat ng naibahagi sa iyo sa tutorial na ito.

Kung nahanap mo ang artikulong ito sa 'Deadlock In Java' na may kaugnayan, tingnan ang isang pinagkakatiwalaang kumpanya sa online na pag-aaral na may isang network ng higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo.

Narito kami upang matulungan ka sa bawat hakbang sa iyong paglalakbay at magkaroon ng isang kurikulum na idinisenyo para sa mga mag-aaral at propesyonal na nais na maging isang Java Developer. Ang kurso ay dinisenyo upang bigyan ka ng isang panimula sa pag-program ng Java at sanayin ka para sa parehong core at advanced na mga konsepto ng Java kasama ang iba't ibang katulad Hibernate & .

Kung may nahahanap kang anumang mga katanungan, huwag mag-atubiling itanong ang lahat ng iyong mga katanungan sa seksyon ng mga komento ng 'Deadlock In Java' at ang aming koponan ay nalulugod na sagutin.