Thread using extending Thread class

Extending the Thread Class

The thread class can be extended to create the thread. A typical procedure for doing this is as follows
1.      A class extending the Thread class overrides the run() method from the Thread class to define the code executed by the thread.
2.      This subclass may call a Thread constructor explicitly in its constructors to initialize the thread, using the super() call.
3.      The start() method inherited from the Thread class is invoked on the object of the class to make the thread eligible for running.


class A extends Thread{
    public void run(){
        say();
    }
    public void say(){
        for(int i=0;i<10;i++){
            try{Thread.sleep(500);}catch(Exception e){}
            System.out.println("Hello "+i+" times");
        }
    }
}
class B extends Thread{
    public void run(){
        say();
    }
    public void say(){
        for(int i=0;i<10;i++){
            try{Thread.sleep(500);}catch(Exception e){}
            System.out.println("Hi "+i+" times");
        }
    }
}



class ThreadDemo1{
    public static void main(String ar[]){
        A a1=new A();
        B b1=new B();
        //a1.run();
        //b1.run();
        a1.start();
        b1.start();
    }
}



When creating threads, using Thread class there are two Disadvantages
·         Extending the Thread class means that the subclass cannot extend any other class, whereas a class implementing the Runnable interface has this option.
·         A class might only be interested in being runnable, and therefore, inheriting the full overhead of the Thread class would be excessive.

No comments:

Popular Posts