class InterruptDemo extends Thread{
public void run(){
try{
Thread.sleep(1000);
System.out.println("task");
}catch(InterruptedException e){
throw new RuntimeException("Thread interrupted..."+e);
}
}
public static void main(String args[]){
InterruptDemo t1 = new InterruptDemo();
t1.start();
try{
t1.interrupt();
}catch(Exception e){
System.out.println("Exception handled "+e);
}
}
}

class InterruptDemo extends Thread{
public void run(){
try{
Thread.sleep(1000);
System.out.println("task");
}catch(InterruptedException e){
System.out.println("Exception handled "+e);
}
}
public static void main(String args[]){
InterruptDemo t1 = new InterruptDemo();
t1.start();
try{
t1.interrupt();
}catch(Exception e){
System.out.println("Exception handled "+e);
}
System.out.println("thread is running...");
}
}
output:
class InterruptThread extends Thread{
public void run(){
for(int i=1;i<=5;i++)
System.out.println(i);
}
public static void main(String args[]){
InterruptThread t1 = new InterruptThread();
t1.start();
t1.interrupt();
}
}
output:
class InterruptedDemo extends Thread{
public void run(){
for(int i=1;i<=2;i++){
if(Thread.interrupted()){
System.out.println("code for interrupted thread");
}
else{
System.out.println("code for normal thread");
}
}//end of for loop
}
public static void main(String args[]){
InterruptedDemo t1=new InterruptedDemo();
InterruptedDemo t2=new InterruptedDemo();
t1.start();
t1.interrupt();
t2.start();
}
}
output:
Labels: multithreading