Tests
whether the current thread has been interrupted. The interrupted
status of the thread is cleared by this method. In other words, if
this method were to be called twice in succession, the second call
would return false (unless the current thread were interrupted again,
after the first call had cleared its interrupted status and before
the second call had examined it).
Syntax
public static boolean
interrupted()
returns
true if the current thread has been interrupted; false otherwise
interrupted
method clears the status of interrupted status flag. Where as
isInterrupted() doesn't.
Example
class MyThread implements Runnable{ public void run(){ for(int i=0; i <1000000000; i++){ int k = i+1, j=i; k = i/k; k = k*i; } System.out.println("Is thread interrupted " + Thread.currentThread().isInterrupted()); System.out.println("Is thread interrupted " + Thread.currentThread().isInterrupted()); System.out.println("Is thread interrupted " + Thread.interrupted()); System.out.println("Is thread interrupted " + Thread.currentThread().isInterrupted()); } public static void main(String args[]){ MyThread task1 = new MyThread(); Thread t1 = new Thread(task1); t1.start(); t1.interrupt(); } }
Output
Is thread interrupted true Is thread interrupted true Is thread interrupted true Is thread interrupted false
Notable
points
1.
Sleep() clears the interrupted flag status, before throwing
InterruptedException
class MyThread implements Runnable{ public void run(){ try{ for(int i=0; i <1000000000; i++){ int k = i+1, j=i; k = i/k; k = k*i; } System.out.println("Is thread interrupted " + Thread.currentThread().isInterrupted()); Thread.currentThread().sleep(1000); } catch(InterruptedException e){ System.out.println("Is thread interrupted " + Thread.currentThread().isInterrupted()); } } public static void main(String args[]){ MyThread task1 = new MyThread(); Thread t1 = new Thread(task1); t1.start(); t1.interrupt(); } }
Output
Is thread interrupted true Is thread interrupted false
No comments:
Post a Comment