Thread bagian 1
Ada 2 cara untuk menciptakan thread di dalam Java yaitu:
+ Mengimplementasikan Runnabla interface (java.lang.Runnable)
+ MengExtend kelas Thread (java.lang.Thread)
1. Mengimpelentasikan Runnable interface.
Signature:
public interface Runnable {
void run();
}
Salah satu cara untuk menciptakan sebuah thread di dalam java adalah mengimplementasikan Runnable Interface dan menginstansiasikan sebuah objek dari kelaas tersebut. Kita perlu mengoverride method run() ke kelas kita yang merupakan method yang kita butuhkan utk diimplementasikan. Method run() memiliki logika dari thread itu.
Berikut prosedur untuk menciptakan threads berdasarkan Runnable interface:
- 1. Sebuah kelas mengimplementasikan Runnable interface, menyediakan method run() yg akan di eksekusi oleh thread. Sebuah objek dari kelas ini adalah sebuah objek Runnable.
- 2. Sebuah objek dari kelas Thread diciptakan dengan melewatkan sebuah objek Runnable sebagai argumen utk konstruktor Thread. Sekarang objek Thread memiliki sebuah objek Runnable yang mengimpelementasikan method run().
- 3. Method start() dijalankan pada objek Thread diciptakan pada step sebelumnya. Method start() mengembalikan segera setelah sebuah thread telah diciptakan.
- 4. Thread berakhir ketika method run() berakhir, baik dengan penyelasaian normal atau dengan throwing sebuah exception yang tidak ditangkap.
Dibawah ini adalah sebuah program yang mengilustrasikan dan menjalankan threads menggunakan interface runnable sebagai contoh lain dari extending kelas Thread. Untuk memulai thread kita membutuhkan utk menjalankan method start() di objek kita.
package com.latihan.example;
class RunnableThread implements Runnable{
Thread runner;
public RunnableThread() {
}
public RunnableThread(String threadName) {
runner = new Thread(this, threadName); // (1) Create a new thread.
System.out.println(“Horaaa -> “+runner.getName());
runner.start(); // (2) Start the thread.
}
public void run(){
//Display info about this particular thread
System.out.println(Thread.currentThread());
}
}
public class RunnableExample{
public static void main(String[] args){
Thread thread1 = new Thread(new RunnableThread(),”thread1″);
Thread thread2 = new Thread(new RunnableThread(),”thread2”);
RunnableThread thread = new RunnableThread(“thread wakwkawak”);
//Start the threads
thread1.start();
thread2.start();
try{
//delay for one second
Thread.currentThread().sleep(5000);
}
catch(InterruptedException e){}
//Display info about the main thread
System.out.println(Thread.currentThread());
}
}
Output
thread3
Thread[thread1,5,main]
Thread[thread2,5,main]
Thread[thread3,5,main]
Thread[main,5,main]