Materi 5 : Thread

 

PEMBAHASAN 4

 

THREAD

 

Kompetensi Dasar :

3.14. Menerapkan dasar-dasar Thread

4.14. Membuat instruksi-instruksi Thread

                                                             

Materi Pembelajaran:

Dasar – Dasar Thread

A.    Pengertian

Thread merupakan kemampuan yang disediakan oleh Java untuk membuat aplikasi yang tangguh dan Efisen. Hal ini dikarenakan thread dalam program memiliki fungsi dan tugas tersendiri.

Thread umumnya digunakan untuk pemrograman multitasking, networking, yang melibatkan pengaksesan ke sumber daya secara konkuren.

Thread merupakan perintah yang dijalankan dengan konsep Multithreading yaitu menjalankan beberapa thread dalam waktu bersamaan dengan berbagi alamat memori yang sama.

 

B.     Method-Method Standar

Method-method standard yang berkaitan dengan multithreading :

  1. start() dipanggil setiap kali thread dimulai.
  2. init() gunanya sama dengan start() untuk menempatkan program inisialisasi
  3. run() berisi badan Thread
  4. stop() untuk menghentikan thread dan ditempatkan di akhir badan thread
  5. Method-method standard lain adalah wait(), notify(), notifyAll(), sleep(), isAlive() dan interrupt().

 

C.    Keunggulan/Keuntungan Thread

a.       Thread merupakan sub-proses yang lebih ringan (lightweight). 

b.      Biaya komunikasi antar thread lebih rendah.

c.       Perpindahan dari satu thread ke thread lain berlangsung cepat.

d.      Thread berjalan didalam sebuah proses.

e.       Dalam sebuah OS dapat berjalan beberapa proses sekaligus. Dalam Sebuah proses dapat berjalan beberapa thread.

 

D.    Siklus hidup thread

Thread memiliki 5 state dalam thread life cycle (new, runnable, running, non-runnable, terminated).

  1. New

Yaitu Kondisi ketika kita telah membuat instance dari class Thread namun belum memanggil method start().


  1. Runnable

Yaitu Kondisi ketika method start() telah dipanggil, tetapi thread scheduler belum memilih thread tersebut untuk menjadi thread berjalan.


  1. Running

Yaitu Kondisi ketika thread telah di start dan thread scheduler telah memilih thread tersebut untuk berjalan


  1. Non-Runnable (blocked)

Yaitu Kondisi ketika thread masih aktif, namun tidak memenuhi syarat untuk running. Contohnya ketika method sleep() sedang dipanggil.


  1. Terminated (dead)

Yaitu Kondisi ketika thread berhenti berjalan. Yaitu ketika keluar dari run() method.

  

E.     Cara Membuat Thread

  1. Membuat subclass dari thread

Yaitu dilakukan dengan memanggil method start(), atau sama dengan untuk membuat thread, harus mendefinisikan method run() pada definisi class.

Konstruktor dari cara ini adalah :

            ClassThread namavar = new ClassThread();

            namavar.start();

 

Atau dapat juga langsung dengan cara:

            New ClassThread().start();

 

Contoh implementasinya akan menjadi :

 

public class NamaThread1 implements Runnable {

 ………

 public void run() {

 ………

 }

 ………

 }

 

  1. Mengimplementasikan interface Runnable

Runnable merupakan unit abstrak, yaitu kelas yang mengimplementasikan interface ini hanya cukup mengimplementasikan fungsi run().

Konstruktor dari cara ini adalah : 

            ObjekRunnable objek = new ObjekRunnable();

            Thread namavar = new Thread(Objek Runnable);

 

Atau dengan cara singkat seperti :

            New Thread(new ObjekRunnable());

 

Contoh implementasinya akan menjadi :

 

public class NamaThread2 extends Thread {

………

public void run() {

………

 }

 ………

 }

  

F.     Macam - macam Thread dalam Java

Daemon Dan User Thread

1.      Daemon thread merupakan thread yang siklus hidupnya tergantung pada thread utama atau induk, sehingga apabila thread induk berakhir, maka otomatis thread-thread daemon juga ikut berakhir.


2.      User thread memiliki sifat berbeda, dimana apabila thread utama sudah selesai, maka user thread akan terus dijalankan

 

G.    Pengaturan dalam Thread

  1. Sleep

Yaitu pengaturan thread untuk menghentikan prosesnya sejenak dan memberi kesempatan pada thread atau proses lain. Sleep dilakukan dengan cara memanggil method :

 

                        Sleep(long waktu);

 

Waktu untuk method ini merupakan tipe long yaitu dalam milisekon.

 

  1. Interrupt

Digunakan apabila menginginkan suatu thread untuk menghentikan proses.



Percobaan 1 : ImplementsRunnable


Percobaan 2 : ExtendsThread


Percobaan 3 : Thread Ganda

                

 Percobaan 4 : Instance




Selamat belajar dan manfaatkan waktu sebaik mungkin. 

Untuk materi 1 silahkan buka draf materi yang ada disamping kanan, atau klik link berikut : http://smk1sintoga.blogspot.com/2020/07/materi-1-string-dan-pelbagai-propertinya.html

Untuk materi 2 silahkan buka draf materi yang ada disamping kanan, atau klik link berikut :

Untuk materi 3 silahkan buka draf materi yang ada disamping kanan, atau klik link berikut :

Untuk materi 4 silahkan buka draf materi yang ada disamping kanan, atau klik link berikut :

     https://smk1sintoga.blogspot.com/2020/08/materi-4-file-dan-inputoutput-io.html




Tidak ada komentar:

Posting Komentar