Pages

Subscribe:

Ads 468x60px

♪ ♥ Get Paid Daily - The Best Sites PTC ♥ ♪
DonkeyMails.com: No Minimum Payout
AyuWage Services - Get Paid to Visits Sites and Complete Surveys

Jumat, 10 Agustus 2012

Pembentukan Thread

Pembentukan Thread

Ada dua cara untuk membuat thread di program Java, yaitu:
  1. Extends kelas Thread
  2. Implements interface Runnable.
Interface Runnable didefinisikan sebagai berikut:
      
public interface Runnable
   {
        public abstract void run();
   }

Kelas Thread secara implisit juga meng- implements interface Runnable. Oleh karena itu, setiap kelas yang diturunkan dari kelas Thread juga harus mendefinisikan method run(). Berikut ini adalah contoh kelas yang menggunakan cara pertama untuk membuat thread, yaitu dengan meng- extends kelas Thread.
      
class CobaThread1 extends Thread
{
   public void run()
   {
         for (int ii = 0; ii<4; ii++){
         System.out.println("Ini CobaThread1");
         Test.istirohat(11);
         }
   }
}

Konsep pewarisan dalam Java tidak mendukung multiple inheritance. Jika sebuah kelas sudah meng- extends suatu kelas lain, maka kelas tersebut tidak lagi bisa meng- extends kelas Thread. Oleh karena itu, cara kedua, yaitu meng- implements interface Runnable, lebih umum digunakan, karena kita bisa meng- implements dari banyak kelas sekaligus.
      
class CobaThread2 implements Runnable
{
   public void run()
   {
        for(int ii = 0; ii<4; ii++){
        System.out.println("Ini CobaThread2");
        Test.istirohat(7);
   }
}

public class Test
{
   public static void main (String[] args)
   {
      Thread t1 = new CobaThread1();
      Thread t2 = new Thread (new CobaThread2());
      t1.start();
      t2.start();

      for (int ii = 0; ii<8; ii++){
        System.out.println("Thread UTAMA");
        istirohat(5);
        }
   }

   public static void istirohat(int tunda)
   {
        try{
           Thread.sleep(tunda*100);
           } catch(InterruptedException e) {}
   }
}

Pada bagian awal main(), terjadi instansiasi objek dari kelas CobaThread1 dan CobaThread2, yaitu t1 dan t2. Perbedaan cara penginstansian objek ini terletak pada perbedaan akses yang dimiliki oleh kelas-kelas tersebut. Supaya thread bisa bekerja, method start() dari kelas Thread harus dipanggil. Kelas CobaThread1 memiliki akses ke method-method yang ada di kelas Thread karena merupakan kelas yang diturunkan langsung dari kelas Thread. Namun, tidak demikian halnya dengan kelas CobaThread2. Oleh karena itu, kita harus tetap membuat objek dari kelas Thread yang menerima argumen objek CobaThread2 padaconstructor-nya, barulah start() bisa diakses. Hal ini ditunjukkan dengan statement Thread t2 = new Thread (new CobaThread2()).
Jadi, ketika terjadi pemanggilan method start()thread yang dibuat akan langsung mengerjakan baris-baris perintah yang ada di method run(). Jika run() dipanggil secara langsung tanpa melalui start(), perintah yang ada di dalam method run() tersebut akan tetap dikerjakan, hanya saja yang mengerjakannya bukanlah thread yang dibuat tadi, melainkan thread utama.

0 komentar:

Posting Komentar

Please Give Your Feedback Or Message.
Thank You!!?

Unique 1:1 Traffic Exchange

♪ ♥ Ma liste de blogs ♥ ♪

♪ ♥ Please Votes! Thanks. ♪ ♥
×