黑马程序员技术交流社区

标题: Java基础--多线程停止方法 [打印本页]

作者: michael_wlq    时间: 2015-9-11 14:04
标题: Java基础--多线程停止方法
如何停止线程?
只有一种,run方法结束。而开启多线程运行,运行代码通常是循环结构,因此只要控制住循环,就可以让run方法结束,也就是线程结束。
特殊情况:
当线程处于了冻结状态,就不会读取到标记,那么线程就不会结束。

当没有指定的方式让冻结的线程恢复到运行状态是,这时需要对冻结进行清除。
强制让线程恢复到运行状态中来,这样就可以操作标记让线程结束:
Thread类提供该方法 interrupt();
示例:
  1. class StopThread implements Runnable
  2. {
  3.         private boolean flag =true;
  4.         public  void run()
  5.         {
  6.                 while(flag)
  7.                 {
  8.                        
  9.                         System.out.println(Thread.currentThread().getName()+"....run");
  10.                 }
  11.         }
  12.         public void changeFlag()
  13.         {
  14.                 flag = false;
  15.         }
  16. }




  17. class  StopThreadDemo
  18. {
  19.         public static void main(String[] args)
  20.         {
  21.                 StopThread st = new StopThread();
  22.                
  23.                 Thread t1 = new Thread(st);
  24.                 Thread t2 = new Thread(st);


  25.                 t1.setDaemon(true);
  26.                 t2.setDaemon(true);
  27.                 t1.start();
  28.                 t2.start();

  29.                 int num = 0;

  30.                 while(true)
  31.                 {
  32.                         if(num++ == 60)
  33.                         {
  34.                                 //st.changeFlag();
  35.                                 //t1.interrupt();
  36.                                 //t2.interrupt();
  37.                                 break;
  38.                         }
  39.                         System.out.println(Thread.currentThread().getName()+"......."+num);
  40.                 }
  41.                 System.out.println("over");
  42.         }
  43. }
复制代码









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2