MENERAP KAN DASAR DASAR THREAD
THREAD
Thread adalah rangkaian eksekusi dari sebuah aplikasi java dan setiap program java minimal memiliki satu buah thread. Sebuah thread bisa berada di salah satu dari 4 status, yaitu new, runnable, blocked, dan dead.
A. THREAD dalam Java
Seperti kita ketahui bahwa Thread adalah rangkaian eksekusi dari sebuah aplikasi java dan setiap program java minimal memiliki satu buah thread. Sebuah thread bisa berada di salah satu dari 4 status, yaitu new, runnable, blocked, dan dead.
B. Pembuatan THREAD dalam java
Untuk membuat thread dalam java terdapat dua cara :
a. Extends class Thread
Untuk menjalankan thread, dapat dilakukan dengan memanggil method start(). Saat start() dijalankan, maka sebenarnya method run() dari class akan dijalankan. Jadi untuk membuat thread, harus mendefinisikan method run() pada definisi class. Konstruktor dari cara ini adalah:
SubThread namaObject = new SubThread();
namaObject.start();
b. Implements interface Runnable
Cara ini merupakan cara yang paling sederhana dalam membuat thread. Runnable merupakan unit abstrak, yaitu kelas yang mengimplementasikan interface ini hanya cukup mengimplementasikan fungsi run(). Dalam mengimplementasi fungsi run(), kita akan mendefinisikan instruksi yang membangun sebuah thread. Konstruktor dari cara ini adalah :
MyThread myObject= new MyThread();
Thread namaObject = new Thread(myObject);
Atau dengan cara singkat seperti :
New Thread(new ObjekRunnable());
MyThread merupakan class yang mengimplementasikan interface dari Runnable, dan object dari class MyThread akan menjadi parameter instansi object class Thread.
c. Synchronized
Sinkronisasi adalah method atau blok yang memiliki tambahan keyword synchronized,sehingga apabila dijalankan maka hanya satu thread pada suatu waktu yang dapat menjalankan method atau blok program. Thread lain akan menunggu thread yang sedang mengeksekusi method ini hingga selesai. Mekanisme sinkronisasi penting apabila terjadi pembagian sumber daya maupun data di antara thread-thread. Sinkronisasi juga melakukan penguncian pada sumber daya atau data yang sedang diproses.
Sinkronisasi dapat dilakukan pada dua bagian yaitu
1. Sinkronisasi Blok
Sintak untuk sinkronisasi blok adalah sebagai berikut :
synchronized (<object reference expression>) {
<code block>
}
2. Sinkronisasi Method
Sintak untuk sinkronisasi method adalah sebagai berikut:
synchronized TypeBalikanMethod NamaMethod ( parameter)
{
}
C. MULTITHREADING
Pengertian MultiThreading pada komputer
Multithreading adalah sebuah sistem yang memungkinkan setiap program dapat dipecah ke dalam thread-thread yang kemudian dapat dijalankan secara terpisah oleh sistem operasi komputer. Kemampuan seperti ini juga termasuk dalam multitasking pada aplikasi. Selain itu multithreading juga memungkinkan pengeksekusian beberapa thread dilakukan dala satu proses saling berbagi sumber daya tetapi dijalankan secara independen.
Model MultiThreading
Sebelum kita mempelajari model-model dari thread alangkah baiknya kita mengenal dulu terminologi dibawah ini:
1. Thread pengguna adalah sebuah Thread yang pengaturannya dilakukan oleh pustaka thread pada tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk pembuatan dan penjadwalan thread, thread pengguna cepat dibuat dan dikendalikan.
2. Thread Kernel adalah sebuah thread yang didukung langsung oleh kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space. Karena dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat jika dibandingkan dengan thread pengguna.
Model-model Multi Threading pada komputer
M Kiodel Many-to-One dimana Model ini memetakan beberapa thread tingkatan pengguna ke sebuah thread. tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Contoh: Solaris Green Threads dan GNU Portable Threads.
2. Model One-to-One dimana model ini memetakan setiap thread tingkatan pengguna ke setiap thread. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan tambahan thread kernel. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris 9.
3. Model Many-to-Many dimana model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor.
Implementasi MultiThread dengan Java
Multithreading dianggap berkaitan erat dengan pengertian multi thread merupakan jalannya beberapa proses dengan urutan yang cepat (multitasking) dalam satu program. Multithreading ini merupakaan teknik pada manipulasi data dimana node-node pada struktur pohon data berisi penunjuk ke node yang lebih tinggi untuk membuat lintasan struktur menjadi lebih efisien. Kalau sebelumnya kita telah mempelajari tentang proses, namun seiring berjalannya waktu dan tuntutan teknologi ternyata ditemukan kelemahan yang sebenarnya bisa diminimalisir pada proses. Untuk itulah diciptakan thread yang merupakan cara dari komputer untuk menjalankan dua atau lebih task dalam waktu bersamaan, sedangkan multithreading adalah cara komputer untuk membagi-bagi pekerjaan yang dikerjakan sebagian-sebagian dengan cepat sehingga menimbulkan efek seperti menjalakan beberapa task secara bersamaan walaupun otaknya hanya satu.
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.
Multithreading dibagi menjadi 2 bagian :
Process Based
Thread Base.
Process Based adalah multitasking saat suatu program dijalankan bersamaan dengan program lain dalam satu waktu.
Thread Base adalah multitasking saat suatu program dijalankan, program itu dapat melakukan proses — proses lain yang dilakukan bersamaan dalam suatu waktu.
Dalam proses multitasking, ada keadaan yang mesti kita ketahui yaitu keadaan saat berjalan ( Running ) artinya adalah Processor menjalankan suatu kegiatan. Keadaan menghentikan sementara ( Suspend ) adalah kegiatan dari processor dihentikan sementara sampai keadaan dilanjutkan yaitu keadaan Resumed atau kadang keadaan pembatalan kegiatan processor ( Blocked ) dan terakhir keadaan selesai atau finishing ( Terminating ).
Untuk lebih jelasnya memahami apa itu multithread, di bawah ini saya implementasi di program sederhana dengan bahasa java. Program ini juga di tunjukan untuk memenuhi tugas Mata Kuliah Sistem Operasi.
Comments
Post a Comment