Apa Itu Java Concurrency dan Life Cycle

Apa Itu Java Concurrency dan Life Cycle

Apa itu Java Concurrency dan Life Cycle - Hi Guys! Artikel ini menjelaskan tentang membuat Java Concurreny dan Life Cycle. Saya menggunakkan NetBeans untuk mencoba membuat.

Java Concurrency dan Life Cycle

Java Concurrency - Overview

Java adalah bahasa pemrograman multi-utas yang artinya kita dapat mengembangkan program multi-utas menggunakan Java. A multithreaded Program berisi dua atau lebih bagian yang dapat dijalankan secara bersamaan dan setiap bagian dapat menangani tugas yang berbeda di saat yang sama memanfaatkan sumber daya yang tersedia secara optimal khususnya ketika komputer Anda memiliki banyak CPU.

Menurut definisi, multitasking adalah ketika berbagai proses berbagi sumber daya pemrosesan umum seperti CPU. Multi-threading memperluas gagasan multitasking ke dalam aplikasi di mana Anda dapat membagi operasi tertentu dalam satu aplikasi menjadi masing-masing utas. Setiap utas dapat berjalan secara paralel. OS membagi waktu pemrosesan tidak hanya di antara yang berbeda aplikasi, tetapi juga di antara setiap utas dalam suatu aplikasi. Multi-threading memungkinkan Anda menulis dengan cara multi-threading kegiatan dapat dilanjutkan secara bersamaan dalam program yang sama.
Life Cycle of a Thread

Java Concurreny dan Life Cycle
Sumber: Java

Sebuah thread melewati berbagai tahapan dalam siklus hidupnya. Untuk misalnya, utas lahir, dimulai, dijalankan, dan kemudian mati. Itu diagram berikut menunjukkan siklus hidup lengkap dari sebuah utas.

Berikut ini adalah tahapan dari Life Cycle:

• Baru - Utas baru memulai siklus hidupnya di baru negara. Tetap dalam kondisi ini sampai program dimulai utas. Ini juga disebut sebagai utas lahir.

• Runnable - Setelah utas baru lahir dimulai, utas menjadi runnable. Utas dalam kondisi ini dianggap menjalankan tugasnya.

• Menunggu - Terkadang, utas beralih ke negara menunggu sementara utas menunggu yang lain Tread untuk melakukan tugas. Utas transisi kembali ke status runnable hanya ketika utas lain memberi sinyal utas menunggu untuk melanjutkan eksekusi.

• Jangka Waktu Menunggu - Utas yang dapat dijalankan dapat masuk ke negara menunggu waktunya untuk interval waktu tertentu. SEBUAH utas dalam status ini transisi kembali ke runnable menyatakan kapan interval waktu itu berakhir atau ketika peristiwa itu sedang menunggu terjadi.

• Dihentikan (Mati) - Utas yang dapat dijalankan masuk ke negara diakhiri saat menyelesaikan tugasnya atau jika tidak berakhir.

Thread Prioritas

Setiap Tread Java memiliki prioritas yang membantu pengoperasian sistem menentukan urutan dijadwalkannya utas. Prioritas utas Java berada dalam kisaran antara MIN_PRIORITY (konstanta 1) dan MAX_PRIORITY (konstanta 10). Oleh default, setiap utas diberi prioritas NORM_PRIORITY (konstanta 5). Tread dengan prioritas lebih tinggi lebih penting bagi suatu program dan harus dialokasikan waktu prosesor sebelum prioritas yang lebih rendah utas. Namun, prioritas utas tidak dapat menjamin pesanan di mana thread mengeksekusi dan sangat banyak platform tergantung.

Create a Thread by Implementing a Runnable Interface

Jika kelas Anda dimaksudkan untuk dieksekusi sebagai utas maka Anda dapat mencapai ini dengan mengimplementasikan antarmuka Runnable. Kamu perlu mengikuti tiga langkah dasar berikut:

Langkah 1
Sebagai langkah pertama, Anda perlu mengimplementasikan metode run () yang disediakan oleh antarmuka Runnable. Metode ini menyediakan titik masuk untuk utas dan Anda akan menaruh logika bisnis lengkap Anda di dalam metode ini. Berikut ini adalah sintaks sederhana dari run () metode -

public void run ()

Langkah 2
Sebagai langkah kedua, Anda akan instantiate objek Thread menggunakan
konstruktor berikut -

Thread (Runnable threadObj, String threadName);

Di mana, threadObj adalah turunan dari kelas yang mengimplementasikan Antarmuka Runnable dan threadName adalah nama yang diberikan kepada Thread baru.

Langkah 3
Setelah objek Thread dibuat, Anda dapat memulainya dengan memanggil mulai () metode, yang mengeksekusi panggilan untuk menjalankan () metode. Berikut ini adalah sintaks sederhana metode start () -

void start();

Contoh
Berikut adalah contoh yang membuat utas baru dan mulai menjalankannya. Anda copy Script atau codding dibawah masukan di Java Main Class

class RunnableDemo implements Runnable {
private Thread t;
private String threadName;
RunnableDemo(String name) {
threadName = name;
System.out.println("Creating " + threadName );
}
public void run() {
System.out.println("Running " + threadName );
try {
for(int i = 4; i > 0; i--) {
System.out.println("Thread: " + threadName + ", "
+ i);
// Let the thread sleep for a while.
Thread.sleep(50);
}
} catch (InterruptedException e) {
System.out.println("Thread " + threadName + "
interrupted.");
}
System.out.println("Thread " + threadName + "
exiting.");
}
public void start () {
System.out.println("Starting " + threadName );
if (t == null) {
t = new Thread (this, threadName);
t.start ();
}
}
}
public class TestThread {
public static void main(String args[]) {
RunnableDemo R1 = new RunnableDemo("Thread-1");
R1.start();
RunnableDemo R2 = new RunnableDemo("Thread-2");
R2.start();
}
}

Lalu Run untuk melihat Outputnya.

Creating Thread-1
Starting Thread-1
Creating Thread-2
Starting Thread-2
Running Thread-1
Thread: Thread-1, 4
Running Thread-2
Thread: Thread-2, 4
Thread: Thread-1, 3
Thread: Thread-2, 3
Thread: Thread-1, 2
Thread: Thread-2, 2
Thread: Thread-1, 1
Thread: Thread-2, 1
Thread Thread-1 exiting.
Thread Thread-2 exiting.

Itulah yang dimaksud Java Concurrency dan Life Cycle dan cara membuatnya.
Semoga bermanfaat. Terimakasih.

Baca juga:

Anda mungkin menyukai postingan ini