Stopping and blocking threads

 

Starting a thread:

When we create a thread by taking instance of a thread class, the thread will be in its new-born state. To move it to runnable state, we use a method named start( ). When we invoke this method with a thread, java run-time schedules it to run by invoking it run() method. Now the thread will be in its running state. To start a thread we use the following syntax:

MyThread t1 = new MyThread();

t1.start();

Stopping a thread:

Whenever we want to stop a thread from running further, we may do so by calling its stop() method. This causes a thread to stop immediately and move it to its dead state. It forces the thread to stop abruptly before its completion i.e. it causes premature death. To stop a thread we use the following syntax:

t1.stop();

Blocking a Thread:

A thread can also be temporarily suspended or blocked from entering into the runnable and subsequently running state by using either of the following thread methods:

sleep(t) // blocked for ‘t’ milliseconds

suspend() // blocked until resume() method is invoked

wait() // blocked until notify () is invoked

These methods cause the thread to go into the blocked (or not-runnable) state. The thread will return to the runnable state when the specified time is elapsed in the case of sleep( ), the resume() method is invoked in the case of suspend( ), and the notify( ) method is called in the case of wait().

 

Example:-

public class JavaStopExp extends Thread  
{    
    public void run()  
    {    
        for(int i=1; i<5; i++)  
        {    
            try  
            {  
                // thread to sleep for 500 milliseconds  
                sleep(500);  
                System.out.println(Thread.currentThread().getName());    
            } 

       catch(InterruptedException e){System.out.println(e);}    
            System.out.println(i);    
        }    
    }    
    public static void main(String args[])  
    {    
        // creating three threads   
        JavaStopExp t1=new JavaStopExp ();    
        JavaStopExp t2=new JavaStopExp ();   
        JavaStopExp t3=new JavaStopExp ();   
        // call run() method   
        t1.start();  
        t2.start();  
        // stop t3 thread   
        t3.stop();  
        System.out.println("Thread t3 is stopped");    
    }    

Comments

Popular posts from this blog

Inheritance in Java

Type Conversions

Life cycle of a Thread and creating thread class