Hello Guest! Welcome to our Website.
Something you might want to know about us.
Don't be hesitated to contact us if you have something to say.

Selasa, 03 April 2012

IMPLEMENTASI THREAD DAN MULTITHREAD SERVER

Pengertian Multithreading dan Thread

Multithreading adalah suatu kemampuan yang memungkinkan beberapa
kumpulan instruksi atau proses dapat dijalankan secara bersamaan dalam sebuah
program. Satu kumpulan instruksi yang akan dieksekusi secara independen dinamakan
thread.

Thread sangat berguna untuk membuat proses yang interaktif; misalnya pada
permainan (game). Dengan menggunakan sejumlah thread, program tetap dapat
menggerakkan sejumlah objek sembari memberikan kesempatan pemakai untuk
melakukan tanggapan melalui keyboard. Web browser merupakan contoh lain
penggunaan thread. Tanpa thread, Web browser akan menghentikan segala tanggapan
terhadap pemakai ketika perangkat lunak tersebut sedang mengambil isi dari suatu URL.




Implementasi Thread
Thread pada Java ditangani melalui dua mekanisme. Cara pertama dilakukan
dengan memperluas kelas Thread, sedangkan cara kedua dilakukan dengan
mengimplementasikan Runnable.

1. Thread dengan Menggunakan kelas Thread
Cara pertama untuk membuat thread adalah dengan memperluas kelas Thread
dan kemudian menuliskan kembali kode pada metode run(). Secara prinsip, hal ini
dilakukan dengan bentuk semacam berikut:
class namaKelas extends Thread {
public void run() {
...
}


2. Thread Melalui Runnable
Runnable sesungguhnya adalah sebuah interface. Dengan mengimplementasikan interface ini, sebuah kelas yang menangani thread dapat diciptakan. Kelas Thread merupakan implementasi dari Runnable. Secara prinsip, hal ini dilakukan dengan bentuk semacam berikut:
ObjekRunnable objek = new ObjekRunnable();
Thread namavar = new Thread(Objek Runnable);

Atau
New Thread(new ObjekRunnable());

Sebuah thread memungkinkan untuk memiliki beberapa state:
1. Running
Sebuah thread yang pada saat ini sedang dieksekusi dan didalam control dari CPU.
2. Ready to run
Thread yang sudah siap untuk dieksekusi, tetapi masih belum ada kesempatan untuk
melakukannya.
3. Resumed
Setelah sebelumnya di block atau diberhentikan sementara, state ini kemudian siap
untuk dijalankan.
4. Suspended
Sebuah thread yang berhenti sementara, dan kemudian memperbolehkan CPU untuk
menjalankan thread lain bekerja.
5. Blocked
Sebuah thread yang di-block merupakan sebuah thread yang tidak mampu berjalan,
karena ia akan menunggu sebuah resource tersedia atau sebuah event terjadi.

Untuk menentukan thread mana yang akan menerima control dari CPU dan akan
dieksekusi pertama kali, setiap thread akan diberikan sebuah prioritas. Sebuah prioritas adalah sebuah nilai integer dari angka 1 sampai dengan 10, dimana semakin tinggi prioritas dari sebuah thread, berarti semakin besar kesempatan dari thread tersebut untuk dieksekusi terlebih dahulu.

Tidak ada komentar:

Posting Komentar

 

Total Tayangan Halaman

Followers