线程的正常中止办法

来源:互联网 发布:淘宝原始图片制作 编辑:程序博客网 时间:2024/04/26 04:04

package thread;

import java.lang.InterruptedException;
 
 public class Test
{
    public static void main(String[] args)
    {
     UseThread ut = new UseThread();
     StopThread st =new StopThread(ut);
     ut.start();
     st.start();
    }
}
 
 
class UseThread extends Thread
{
 
 private volatile boolean stop = true;
 private int i = 0;
 public void stopRun()
 {
  stop = false;
  System.out.println("in stopRun  ,i = "+i);
 }
 public void run()
 {
  while(stop)
  {
   System.out.println("in while befor ++ ,i = "+i);
   
   i++;
   System.out.println("in while after ++ ,i = "+i);
   
  }
  System.out.println("out of while  ,i = "+i);
 }
}

 class StopThread extends Thread
{
 private UseThread ut= null;
 public StopThread(UseThread u)
 {
  System.out.println("in the constructor of StopThred ");
  ut = u;    
 }
 
 public void run()
 {
  System.out.println("in StopThred's run ");
  try
  {
   System.out.println("the StopThread has run but will sleep");
   this.sleep(10000);
   System.out.println("the  StopThred's has waken up ");
  }catch(InterruptedException e)
  {
   e.printStackTrace();
  }
  
  ut.stopRun();
  System.out.println("in StopThred's run,the UseThread has stopped ");
  
 }
}

原创粉丝点击