基础知识 检测线程是否结束的方法

               
  1. package net.java2000.lang;

  2. /**
  3.  * 检测线程是否结束的方法。
  4.  * 
  5.  * @author 赵学庆,Java世纪网(java2000.net)
  6.  * 
  7.  */
  8. public class ThreadDetermingFinish {

  9.   public static void main(String[] args) {
  10.     // 创建并启动线程
  11.     MyThreadToDeterming thread = new MyThreadToDeterming();
  12.     thread.start();

  13.     // 非阻塞的方式检测线程是否完成
  14.     if (thread.isAlive()) {
  15.       System.out.println("线程在运行中");
  16.     } else {
  17.       System.out.println("线程已经结束");
  18.     }

  19.     // 用一段指定的时间,等待线程结束
  20.     long delayMillis = 1000;
  21.     try {
  22.       System.out.println("开始等待一段时间...");
  23.       thread.join(delayMillis);

  24.       if (thread.isAlive()) {
  25.         System.out.println("等待结束:线程在运行中");
  26.       } else {
  27.         System.out.println("等待结束:线程已经结束");
  28.       }
  29.     } catch (InterruptedException e) {
  30.       System.out.println("等待被中断了");
  31.     }

  32.     // 等待线程结束
  33.     try {
  34.       System.out.println("开始等待直到结束...");
  35.       thread.join();
  36.       System.out.println("线程已经结束");
  37.     } catch (InterruptedException e) {
  38.       System.out.println("等待被中断了");
  39.     }

  40.   }

  41. }

  42. class MyThreadToDeterming extends Thread {
  43.   public void run() {
  44.     int i = 20;
  45.     while (i-- > 0) {
  46.       // 我们故意让这个线程休眠100毫秒
  47.       try {
  48.         Thread.sleep(100);
  49.       } catch (InterruptedException e) {
  50.         e.printStackTrace();
  51.       }
  52.       System.out.println(this.getClass().getName() + " is running...");
  53.     }
  54.     System.out.println(this.getClass().getName() + " is stopping...");
  55.   }
  56. }
运行结果

线程在运行中
开始等待一段时间...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
等待结束:线程在运行中
开始等待直到结束...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is running...
net.java2000.lang.MyThreadToDeterming is stopping...
线程已经结束











<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自blog.csdn.net/jgfyyfd/article/details/86615688