Bagaimana Cara Membuat Thread di Java? | Multithreading di Jawa

Diterbitkan: 2020-12-29

Pada artikel ini, kita akan melihat threading di Java dan mengeksplorasi mekanisme yang memungkinkan threading.

Daftar isi

Threading di Jawa

Fitur threading di Java adalah sub-proses yang ringan. Ini dianggap sebagai unit pemrosesan terkecil. Ini adalah sarana untuk mencapai multitasking dalam suatu program. Ini adalah fitur yang berguna untuk game, animasi, dll.

Java memiliki dukungan bawaan untuk membuat utas dan multi-utas. Ini adalah pendekatan cerdas untuk meminimalkan inefisiensi dan menyeret dengan pemanfaatan ruang CPU yang optimal. Di Jawa, ini dapat dilakukan dengan dua cara:

  1. Perpanjang Kelas Benang, atau
  2. Terapkan Antarmuka yang Dapat Dijalankan

Ketika lebih dari satu utas dieksekusi secara bersamaan, itu disebut multithreading. Ini pada dasarnya memungkinkan beberapa bagian dari suatu program untuk berjalan secara bersamaan, setiap bagian dari utas dan setiap utas mengikuti jalur yang berbeda untuk dieksekusi.

Utas menggunakan ruang memori bersama; memori tidak dialokasikan untuk setiap bagian, sehingga penggunaan CPU secara maksimal. Selanjutnya, mengubah konteks tidak memakan banyak waktu. Namun, terlalu banyak utas dapat melibatkan CPU Anda dalam pengalihan konteks dan eksekusi Anda bisa tertunda.

Sebuah Utas Dapat Berada Di Salah Satu Dari Enam Negara Berikut

  1. BARU – segera setelah utas dibuat, utas itu ada dalam status baru. Ini pada dasarnya berarti bahwa utas belum memulai eksekusi.
  2. MENJALANKAN – ketika sebuah utas sedang dieksekusi atau sejalan untuk dieksekusi, itu dalam keadaan berjalan.
  3. MENUNGGU – utas yang sedang berjalan terkadang dihentikan atau ditangguhkan untuk memungkinkan aktivitas lain terjadi. Versi wait() atau join() non-waktu habis dapat menangguhkan utas agar tidak dieksekusi. Setelah, tindakan telah terjadi, utas yang ditangguhkan dilanjutkan.
  4. WAITING WAITING – thread yang sedang berjalan terkadang dihentikan sementara atau ditangguhkan untuk durasi tertentu. Misalnya, ketika fungsi sleep() dipanggil.
  5. DIBLOKIR – ketika utas Java yang ditangguhkan tidak dapat memperoleh sumber daya tertentu, itu diblokir dan ada dalam status diblokir.
  6. TERMINATED – ketika sebuah thread menyelesaikan eksekusinya, thread tersebut berada dalam status terminasi. Namun, Anda dapat mengakhiri utas kapan saja.

Pelajari lebih lanjut tentang arsitektur dan komponen Java.

Manfaat membuat utas di Java

Ada beberapa keuntungan untuk membuat thread. Beberapa di antaranya adalah

  1. Karena utas independen, satu eksekusi tidak memengaruhi yang lain bahkan ketika mereka beroperasi di ruang memori bersama. Ini juga berarti Anda dapat melakukan lebih dari satu operasi secara bersamaan.
  2. Threading adalah bentuk multitasking dan menghemat waktu.
  3. Kesalahan dalam satu utas tidak memengaruhi yang lain.

Bagaimana cara membuat utas di Jawa?

Seperti dibahas di atas, ada dua cara untuk melakukan ini: Memperpanjang Kelas Thread, atau Menerapkan Antarmuka yang Dapat Dijalankan

Kelas Benang

Ada konstruktor dan metode di kelas Thread yang memungkinkan Anda melakukan operasi, mengelola, dan melacak utas. Ini memperluas kelas Object yang kemudian mengimplementasikan antarmuka Runnable pendamping. Konstruktor yang ada di kelas utas adalah: Thread(), Thread(Nama String), Thread(Runnable r), dan Thread(Runnable r, nama String).

Berikut ini adalah metode dan penjelasannya

metode Digunakan untuk apa?
Mulailah() Mulai eksekusi
Lari() Untuk menjalankan tindakan untuk utas
tidur() Menempatkan utas untuk tidur selama durasi tertentu
Ikuti() Tunggu sampai utas lain dihentikan
dapatkanPrioritas() Untuk menunjukkan prioritas utas yang diberikan
setPrioritas() Untuk mengubah prioritas utas yang diberikan
getName() Untuk mengembalikan nama utas yang di-ePEC
setNama() Untuk mengubah nama utas yang ditentukan
getId() Untuk mengembalikan ID dari utas yang diberikan
hidup() Untuk menguji apakah utas masih ada di negara bagian mana pun
menghasilkan() Menjeda eksekusi objek utas untuk memungkinkan utas lain berjalan
menskors() Untuk menangguhkan utas yang diberikan
melanjutkan() Untuk melanjutkan utas dari status ditangguhkan
berhenti() Untuk menghentikan utas yang diberikan
menghancurkan() Untuk menghancurkan grup dan subgrup utas
mengganggu() Untuk menyebabkan gangguan dalam eksekusi utas
terganggu() Untuk menguji apakah eksekusi utas yang diberikan terganggu
terganggu() Untuk menguji apakah eksekusi utas saat ini terganggu
jumlah aktif() Untuk mengembalikan jumlah utas aktif dalam grup utas
tahanKunci() Ini mengembalikan true jika dan hanya jika utas saat ini memegang kunci monitor pada objek yang ditentukan.
getState() Untuk menentukan status utas yang diberikan
setContextClassLoader() Untuk mengatur konteks ClassLoader
getContextClassLoader() Untuk mengembalikan konteks ClassLoader

Untuk membuat utas dengan memperluas kelas Thread, pertama-tama harus dibuat kelas yang memperluas kelas java.lang.Thread. Kelas ini didefinisikan untuk mengganti metode run(). Selanjutnya, sebuah objek dibuat di kelas baru yang diikuti dengan memanggil metode start() untuk memulai eksekusi thread.

Harus Dibaca: Program Pola di Java yang Harus Anda Checkout

Antarmuka yang Dapat Dijalankan

Ini adalah cara termudah untuk membuat utas. Hanya satu metode yang diperlukan untuk mengimplementasikan Antarmuka Runnable: run()

Untuk menyatakannya, kami menulis

menjalankan kekosongan publik ()

Di dalam run(), kami melanjutkan untuk menulis kode untuk membuat utas baru.

Mendaftar di Kursus Rekayasa Perangkat Lunak dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Kelas Utas vs Antarmuka yang Dapat Dijalankan

Kelas utas mencegah Anda memperluas kelas lain. Ini karena pewarisan berganda tidak dimungkinkan di Jawa. Namun, ini tidak terjadi ketika kami mengimplementasikan antarmuka Runnable di mana Anda terus memperluas kelas lain.

Memperluas kelas Utas membuat beberapa metode penting dapat diakses oleh Anda yang meningkatkan fungsionalitas utas. Misalnya, hasil(), stop(), isalive(), interupsi(). Antarmuka Runnable hanya memiliki metode yang agak membatasi.

Membungkus

Jika Anda tertarik untuk mempelajari lebih lanjut tentang Java, pengembangan perangkat lunak full-stack, lihat Program PG Eksekutif upGrad & IIIT-B dalam Pengembangan Perangkat Lunak Full-stack yang dirancang untuk profesional yang bekerja dan menawarkan 500+ jam pelatihan yang ketat, 9+ proyek, dan penugasan, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.

Dapatkan Pekerjaan Impian Anda

Daftar Sekarang untuk Magister Rekayasa Perangkat Lunak