Bagaimana Cara Menangani Kebuntuan Di Java?



Artikel ini membahas konsep Deadlock In Java dengan contoh yang menunjukkan bagaimana thread dalam program multi threaded diblokir.

Mendukung bahasa pemrograman Java . Ini melibatkan banyak utas yang berjalan secara bersamaan untuk multitasking. Tetapi dalam kasus tertentu atau karena kekurangan tertentu, utas menemukan dirinya dalam keadaan menunggu selamanya. Pada artikel ini, Kami akan memahami kondisi kebuntuan di dan berbagai cara untuk menghindarinya. Berikut topik-topik yang dibahas di blog ini:

Apa itu Deadlock di Java?

Deadlock di Java adalah kondisi di mana dua atau lebih thread diblokir selamanya, menunggu satu sama lain.





Ini biasanya terjadi ketika beberapa utas membutuhkan kunci yang sama tetapi mendapatkannya dalam urutan yang berbeda. di Jawa mengalami kebuntuan karena kata kunci tersinkronisasi.

Ini menyebabkan utas yang menjalankan memblokir sambil menunggu kunci, atau monitor, terkait dengan yang ditentukan obyek .



Kebuntuan di Jawa - Edureka

Contoh Deadlock

kelas publik Contoh {public static void main (String [] args) {String akhir r1 = 'edureka' String akhir r2 = 'java' Thread t1 = Thread baru () {public void run () {disinkronkan (r1) {System. out.println ('Thread 1: Locked r1') coba {Thread.sleep (100)} catch (pengecualian e) {} disinkronkan (r2) {System.out.println ('Thread 1: Locked r2')}}} } Thread t2 = new Thread () {public void run () {synchronized (r1) {System.out.println ('Thread 2: Locked r1') coba {Thread.sleep (100)} catch (pengecualian e) {} tersinkronisasi (r2) {System.out.println ('Thread 2: Locked r2')}}}} t1.start () t2.start ()}}
 Keluaran: Thread 1: Terkunci r1 Thread 2: Terkunci r2

Bagaimana Cara Menghindari Deadlock di Java?

Meskipun tidak sepenuhnya mungkin untuk menghindari kondisi deadlock, namun kita dapat mengikuti langkah-langkah atau petunjuk tertentu untuk menghindarinya:

bagaimana menemukan panjang array di javascript
  • Hindari Kunci Bersarang - Anda harus menghindari memberikan kunci ke banyak utas, ini adalah alasan utama kondisi kebuntuan. Ini biasanya terjadi ketika Anda mengunci beberapa utas.

  • Hindari Kunci yang Tidak Perlu - Kunci harus diberikan ke utas penting. Memberikan penguncian pada thread yang tidak diperlukan yang menyebabkan kondisi deadlock.



  • Menggunakan Thread Join - Kebuntuan biasanya terjadi ketika satu utas menunggu utas lainnya selesai. Dalam hal ini, kita dapat menggunakan Thread.join dengan waktu maksimum yang dibutuhkan utas.

Ini membawa kita ke akhir artikel ini di mana kita telah mempelajari tentang kebuntuan di Java dan bagaimana menghindarinya. Saya harap Anda jelas dengan semua yang telah dibagikan dengan Anda dalam tutorial ini.

amazon ec2 tutorial untuk pemula

Jika Anda menemukan artikel tentang 'Deadlock In Java' ini relevan, bacalah perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar puas yang tersebar di seluruh dunia.

Kami di sini untuk membantu Anda dengan setiap langkah dalam perjalanan Anda dan menghasilkan kurikulum yang dirancang untuk siswa dan profesional yang ingin menjadi Pengembang Java. Kursus ini dirancang untuk memberi Anda awal yang baik dalam pemrograman Java dan melatih Anda untuk konsep Java inti dan lanjutan bersama dengan berbagai Suka Hibernasi & .

Jika Anda menemukan pertanyaan, silakan ajukan semua pertanyaan Anda di bagian komentar 'Deadlock In Java' dan tim kami akan dengan senang hati menjawabnya.