Kamis, 12 April 2012

Tugas Thread


>> Contoh membuat thread sederhana dengan membuat kelas yang mengimplementasikan interface runnable, menginstansi objek dengan kelas thread dengan objek runnable sebagai parameter, memanggil method start() dari objek thread. 
berikut adalah coding nya :
/**
 *
 * @author pratnya puji binti
 */
public class Thread1 implements Runnable
{
int x=1;
int identifier;

    public Thread1(int i){
    identifier=i;
    }

    public void run(){
    while (true) {
        System.out.println("thread ke "+ identifier + " loop ke " + x);
       x++;
        }
    }
   
    public static void main(String[] args) {
        Thread1 MyThread1 = new Thread1 (1);
        Thread1 MyThread2 = new Thread1(2);

        Thread t1= new Thread (MyThread1);
        Thread t2= new Thread (MyThread2);

       
       t1.start();
       t2.start();

    }
}

Hasilnya adalah sebagai berikut :
Penjelasan program :
Kelas Thread adalah kelas yang mengimplementasikan interface Runnable. Method Run adalah method pada interface Runnable yang akan dijalankan secara paralel. Instansiasi dari kelas thread1 akan dijadikan parameter pada instansi objek thread. Program akan menjalankan method run milik objek t1 dan t2 secara paralel dengan cara memanggil method start() milik objek instant dari thread.


>> Berikutnya teknik penciptaan thread dengan membuat kelas atau objek yang mewarisi kelas thread, melakukan overriding terhadap method run() pada kelas thread dan memanggil method start() dari objek tersebut. Contoh listing program dapat dilihat pada program berikut.

 berikut adalah coding nya :
/**
 *
 * @author pratnya binti puji
 */
public class Thread2 extends Thread
{
public int x= 1;
public int identifier;

/*konstruktor*/
public Thread2(int i){
    identifier = i;
    }

    public void run(){
        try {
            while (true){
                System.out.println("thread "+ identifier+ " : loop ke " + x);
                x++;
            }
            }
        catch(Exception e){
            e.printStackTrace();
        }
    }
   
    public static void main(String[] args) {
        Thread2 t1 = new Thread2 (1);
        Thread2 t2 = new Thread2 (2);
        Thread2 t3 = new Thread2 (3);
    t1.start();
    t2.start();
    t3.start();
    }
}
Hasilnya adalah sebagai berikut : 

Penjelasan program :
  Untuk mengeksekusi objek thread, sebenarnya yang di eksekusi secara paralel adalah method run yang di identifikasikan pada kelas objek tersebut. Namun, cara pemanggilan method run() ini adalah dengan cara memanggil method start() yang dimiliki kelas thread.
  Dalam contoh diatas, method run yang dimiliki objek t1 bertipe kelas thread1 dipaggil dengan memanggil method start dari t1, yang sebenarnya milik dari kelas thread (t1 mewarisi thread)
  Pada eksekusi program diatas, eksekusi t1.start(),eksekusi t2.start(),eksekusi t3.start() berjalan secara paralel