Friday, September 9, 2011

Threads (Create New Thread Using Runnable )

    /*
    Create New Thread Using Runnable Example
    This Java example shows how to create a new thread by implementing
    Java Runnable interface.
    */
    
    /*
     * To create a thread using Runnable, a class must implement
     * Java Runnable interface.
     */
    public class CreateThreadRunnableExample implements Runnable{
    
    /*
    * A class must implement run method to implement Runnable
    * interface. Signature of the run method is,
    *
    * public void run()
    *
    * Code written inside run method will constite a new thread.
    * New thread will end when run method returns.
    */
    public void run(){
    
    for(int i=0; i < 5; i++){
    System.out.println("Child Thread : " + i);
    
    try{
    Thread.sleep(50);
    }
    catch(InterruptedException ie){
    System.out.println("Child thread interrupted! " + ie);
    }
    }
    
    System.out.println("Child thread finished!");
    }
    
    public static void main(String[] args) {
    
    /*
    * To create new thread, use
    * Thread(Runnable thread, String threadName)
    * constructor.
    *
    */
    
    Thread t = new Thread(new CreateThreadRunnableExample(), "My Thread");
    
    /*
    * To start a particular thread, use
    * void start() method of Thread class.
    *
    * Please note that, after creation of a thread it will not start
    * running until we call start method.
    */
    
    t.start();
    
    for(int i=0; i < 5; i++){
    
    System.out.println("Main thread : " + i);
    
    try{
    Thread.sleep(100);
    }
    catch(InterruptedException ie){
    System.out.println("Child thread interrupted! " + ie);
    }
    }
    System.out.println("Main thread finished!");
    }
    }
    
    /*
    Typical output of this thread example would be
    
    Main thread : 0
    Child Thread : 0
    Child Thread : 1
    Main thread : 1
    Main thread : 2
    Child Thread : 2
    Child Thread : 3
    Main thread : 3
    Main thread : 4
    Child Thread : 4
    Child thread finished!
    Main thread finished!
    
    */

No comments:

Post a Comment