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 :
- start() dipanggil setiap kali thread dimulai.
- init()
gunanya sama dengan start() untuk menempatkan program inisialisasi
- run() berisi badan Thread
- stop()
untuk menghentikan thread dan ditempatkan di akhir badan thread
- 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).
- New
Yaitu Kondisi
ketika kita telah membuat instance dari class Thread namun belum memanggil
method start().
- Runnable
Yaitu Kondisi
ketika method start() telah dipanggil, tetapi thread scheduler belum memilih
thread tersebut untuk menjadi
thread berjalan.
- Running
Yaitu Kondisi ketika thread telah di start dan
thread scheduler telah memilih thread tersebut untuk berjalan
- Non-Runnable (blocked)
Yaitu Kondisi
ketika thread masih aktif, namun tidak memenuhi syarat untuk running. Contohnya
ketika method sleep() sedang dipanggil.
- Terminated (dead)
Yaitu Kondisi
ketika thread berhenti berjalan. Yaitu ketika keluar dari run() method.
E.
Cara Membuat Thread
- 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() {
………
}
………
}
- 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
- 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.
- 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 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