package SleepTest;
 
public class Test extends Thread {
          
 public static void main(String argus[]) {
     Test s = new Test();     
     Another a = new Another(Thread.currentThread());
     
       try {
 
          Thread myThread = new Thread(a);    
          myThread.start();
          s.selfSleep(10000);          
 
       }catch (Exception ex){
       //會有InterruptedException發生但是為什為isInterrupted傳回值是false???
                System.out.println("current thread is " + Thread.currentThread() + ", is interrupted, " + s.isInterrupted());
            System.out.println(">_<" + ex.getMessage());
       }
       
       try {
            s.selfSleep(2000);//sleep again
       }catch (Exception ex) {
            System.out.println("sleep again");
            ex.printStackTrace();
       }
 }
      
  public void selfSleep(int mill) {
      try {
    Thread.sleep(mill);
    System.out.println("after sleep " + mill + " millsec");
      }
      catch (Exception ex) {
      System.out.println("Test selfsleep, isinterruptered, " + this.isInterrupted());
      ex.getMessage();
      ex.printStackTrace();
      }
  }  
}
 
class Another implements Runnable {
  
   Thread original;
   
   Another(Thread original) {
       this.original = original;
   }
   
   public void run() {
     try {
        System.out.println("Another Object, sleep 5 sec");
        Thread.sleep(5000);
        System.out.println("Another Object ready to interrupt : " + this.original);
        this.original.interrupt();        
                
       }catch (Exception ex) {           
         System.out.println(">_< in Another " + ex.getMessage());
       }
   }
    
}
--------------------------
Another Object, sleep 5 sec
Another Object ready to interrupt : Thread[main,5,main]
Test selfsleep, isinterruptered, false
java.lang.InterruptedException: sleep interrupted
        at java.lang.Thread.sleep(Native Method)
        at SleepTest.Test.selfSleep(Test.java:34)
        at SleepTest.Test.main(Test.java:14)
after sleep 2000 millsec
这是执行结果,,,为什么这句:
      System.out.println("Test selfsleep, isinterruptered, " + this.isInterrupted());为false啊》》请教,