THREAD Imam Solikin, M.Kom
Apa Itu Thread? Program-program dalam suatu proses yang masing-masing bersifat mandiri dari program-program yang lainnya. Bersifat simultan dan asinkron. Suatu teknik yang memungkinkan sejumlah aktivitas tertentu dijalankan pada proses yang tunggal.
Definisi Thread Sebuah thread merupakan sebuah pengontrol aliran program. Untuk lebih mudahnya, bayangkanlah thread sebagai sebuah proses yang akan dieksekusi di dalam sebuah program tertentu. Penggunaan sistem operasi modern saat ini telah mendukung kemampuan untuk menjalankan beberapa program. Misalnya, pada saat Anda mengetik sebuah dokumen di komputer Anda dengan menggunakan text editor, dalam waktu yang bersamaan Anda juga dapat mendengarkan musik, dan surfing lewat internet di PC Anda. Sistem operasi yang telah terinstal dalam computer Anda itulah yang memperbolehkan Anda untuk menjalankan multitaskting.
Thread
Apa yang dimiliki suatu thread? Alur program sendiri. Memiliki stack-nya sendiri. Memiliki counter programnya sendiri. Memiliki variable-variable-nya sendiri (tapi dapat saling berbagi variable dan objek).
Mengapa memerlukan thread? Antarmuka pengguna yang lebih responsif. Mengoptimalkan multiprocessor system. Bermanfaat untuk proses-proses asynchronous. (Asynchronous adalah proses komunikasi data yang tidak terikat dengan waktu tetap, proses transformasi data kecepatannya cukup relatif dan tidak tetap) Contoh komunikasi data dengan Ashynchronous ini adalah Modem, Mesin Fax, dan TCP/IP
Operasi-operasi pada Thread Start() Memulai suatu program thread Init() Memberi nilai awal program thread Run() Menjalankan program thread Sleep() Menghentikan sementara program thread
State dalam Thread 1. Running/ Runnable Sebuah thread yang pada saat ini sedang dieksekusi dan didalam control dari CPU. Saat method run() dipanggil, status thread berubah menjadi runnable, artinya thread tersebut sudah memenuhi syarat untuk dijalankan oleh JVM. 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. 6. Dead Sebuah thread berada di status dead bila telah keluar dari method run(). Hal ini bisa terjadi karena thread tersebut memang telah menyelesaikan pekerjaannya di method run(), maupun karena adanya pembatalan thread. Method isAlive() mengembalikan nilai boolean untuk mengetahui apakah thread tersebut dead atau tidak.
Contoh Thread
Contoh Thread
Output