Cara Membuat MultiThread di Java

Dalih Rusmana
3 min readApr 25, 2018

Author : Dalih Rusmana & M Aldhi Zulkifli

“Colorful lines of code on a MacBook screen” by Caspar Rubin on Unsplash

Sering kali ketika kita mengeksekusi program dengan urutan dari kiri ke kanan, atas ke bawah. Thread adalah unit terkecil dalam suatu proses yang bisa dijadwalkan oleh sistem operasi. Kalo Multi-Threading adalah proses dengan thread yang banyak dan mengerjakan lebih dari satu tugas dalam satu waktu.

Baris perintah nomer 8 akan dieksekusi setelah nomer 7 selesai, dan tentunya itu setelah nomer 6selesai. Dan jangan harap nomer 5 akan dieksekusi apabila nomer 1 belum selesai.

Thread adalah potongan kode yg independent (dari sebuah proses) yang di ekseskusi oleh CPU yang penjadwalanya di lakukan oleh Operating sytem . Thread dibuat oleh programmer, bagian mana saja yg akan dijadikan thread ditentukan oleh programmer. Setiap thread mendapat jatah waktu dikerjakan CPU yg disebut quantum.

Di sini saya berbagi cara membuat suatu program multithread di java, berikut kami sertakan kodingan nya. Tulisan ini khususnya di tunjukan untuk memenuhi tugas Mata Kuliah Sistem Operasi, dan umumnya untuk kalian semua yang ingin belajar tentang multithread dan mau tau apa itu tentang multithread.

Tanpa berlama lama kita langsung saja eksekusi program nya.

Program di atas adalah program utamanya atau class main nya.

Dan di bawah ini merupakan thread yang kami buat, kami membuat dua buah thread di file terpisah. Silahkan anda bebas untuk membuat nama file nya.

Di atas adalah program java dengan nama file Thread1

Ini adalah program Thread2.

Kalo kita perhatikan di dalam program itu ada implements Runnable, nah apa itu implements Runnable? terus ada juga kodingan Thread.sleep(1000) atau Thread.sleep(2000), apa sih sebenarnya itu ? Mari kita simak penjelasan nya di bawah ini.

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.

  • New, Thread yang berada di status ini adalah objek dari kelas Thread yang baru dibuat, yaitu saat instansiasi objek dengan statement new. Saat thread berada di status new,belum ada sumber daya yang dialokasikan, sehingga thread belum bisa menjalankan perintah apapun.
  • Runnable, Agar thread bisa menjalankan tugasnya, method start() dari kelas Thread harus dipanggil. Ada dua hal yang terjadi saat pemanggilan method start(), yaitu alokasi memori untuk thread yang dibuat dan pemanggilan method run(). Saat method run() dipanggil, status thread berubah menjadi runnable, artinya thread tersebut sudah memenuhi syarat untuk dijalankan oleh JVM. Thread yang sedang berjalan juga berada di status runnable.
  • 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. Status jelas dari sebuah thread tidak dapat diketahui, tetapi method isAlive() mengembalikan nilai boolean untuk mengetahui apakah thread tersebut dead atau tidak.

Nah itu sekilas tentang status Thread. Bagaimana kalo untuk pembentukan thread dalam java.

Untuk membuat Thread dalam java terdapat dua cara setau kami yah hehe :) yaitu :

  • Extend 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();
  • 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 secara singkat nya seperti ini :

New Thread(new ObjekRunnable());

MyThread merupakan class yang mengimplementasikan interface dari Runnable, dan object dari class MyThread akan menjadi parameter instansi object class Thread.

Sekian mungkin yang bisa saya bagikan, semoga bermanfaat. see you in the next Article :) Thanks.

--

--