zoukankan      html  css  js  c++  java
  • 转: Java安全停止线程方法

    转: http://blog.csdn.net/flyingpig4/article/details/7675557

    1.早期Java提供java.lang.Thread类型包含了一些列的方法start(), stop(), stop(Throwable) and suspend(), destroy() and resume()。,Sun公司的一篇文章《Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?2.使用volatile变量来设置Thread的run的循环条件,保证变量同步性  
          
    public class JavaTest extends Thread{  
    private volatile boolean isRun = true;  
    public static void main(String[] args) {  
    JavaTest thread = new JavaTest();  
    thread.start();  
    thread.close();  
    }  
    @Override  
    public void run() {  
    while (isRun) {  
    //dosomething  
    }  
    }  
    public void close() {  
    this.isRun = false;  
    }  
    }  
    3.使用interrupt()来中止非运行状态的线程,如wait()和sleep()状态的线程,此时可利用interrupted来终止线程  
    public class JavaTest extends Thread{  
    private volatile boolean isRun = true;  
    public static void main(String[] args) {  
    JavaTest thread = new JavaTest();  
    thread.start();  
    thread.close();  
    if (thread != null) {  
    thread.interrupt(); //外围调用关闭  
    }  
    }  
    @Override  
    public void run() {  
    while (isRun) {  
    //dosomething  
      
    try {  
    wait();   //同样适用于sleep等状态  
    } catch (InterruptedException e) {  
    //catch Exception  
    }  
    }  
    }  
    public void close() {  
    this.isRun = false;  
    }  
    }
  • 相关阅读:
    django 母版与继承
    django 模板系统
    及时从数据库中取得数据填放进Form表单的多选框中
    django 自带的验证功能
    django Form表单
    AJAX 操作
    django 中间件
    JVM-crash查看hs_err_pid.log日志
    java-log4j日志打印
    tomcat 闪退问题排查
  • 原文地址:https://www.cnblogs.com/zhang-pengcheng/p/4639533.html
Copyright © 2011-2022 走看看