1. 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. 2.使用volatile变量来设置Thread的run的循环条件,保证变量同步性
    3. public class JavaTest extends Thread{
    4. private volatile boolean isRun = true;
    5. public static void main(String[] args) {
    6. JavaTest thread = new JavaTest();
    7. thread.start();
    8. thread.close();
    9. }
    10. @Override
    11. public void run() {
    12. while (isRun) {
    13. //dosomething
    14. }
    15. }
    16. public void close() {
    17. this.isRun = false;
    18. }
    19. }
    20. 3.使用interrupt()来中止非运行状态的线程,如wait()和sleep()状态的线程,此时可利用interrupted来终止线程
    21. public class JavaTest extends Thread{
    22. private volatile boolean isRun = true;
    23. public static void main(String[] args) {
    24. JavaTest thread = new JavaTest();
    25. thread.start();
    26. thread.close();
    27. if (thread != null) {
    28. thread.interrupt(); //外围调用关闭
    29. }
    30. }
    31. @Override
    32. public void run() {
    33. while (isRun) {
    34. //dosomething
    35. try {
    36. wait();   //同样适用于sleep等状态
    37. } catch (InterruptedException e) {
    38. //catch Exception
    39. }
    40. }
    41. }
    42. public void close() {
    43. this.isRun = false;
    44. }
    45. }

Java安全停止线程方法的更多相关文章

  1. 转: Java安全停止线程方法

    转: http://blog.csdn.net/flyingpig4/article/details/7675557 1.早期Java提供java.lang.Thread类型包含了一些列的方法star ...

  2. Thread之十:停止线程方法汇总

    在上篇文章<多线程的使用——Thread类和Runnable接口>中提到中断线程的问题.在JAVA中,曾经使用stop方法来停止线程,然而,该方法具有固有的不安全性,因而已经被抛弃(Dep ...

  3. Java如何停止线程?

    在Java编程中,如何停止线程? 以下示例演示了如何通过创建一个用户定义的方法run()方法和Timer类来停止线程. package com.yiibai; import java.util.Tim ...

  4. 深入理解Java中停止线程

    一.停止线程会带来什么? 对于单线程中,停止单线程就是直接使用关键字return或者break,但是在停止多线程时是让线程在完成任务前去开启另外一条线程,必须放弃当前任务,而这个过程是不可预测,所以必 ...

  5. Java——安全地停止线程

    错误用例 下面用例中,一个正在sleep的线程,在调用interrupt后,wait方法检查到isInterrupted()为true,抛出异常, 而catch到异常后没有处理.一个抛出了Interr ...

  6. java安全停止线程

    Thread.stop()是一个被废弃的方法,不被推荐使用的原因是stop方法太过于暴力,强行把执行到一半的线程终止,并且会立即释放这个线程所有的锁.会破坏了线程中引用对象的一致性. 使用判断标志位的 ...

  7. java线程之停止线程

         在Java中有以下3种方法可以终止一个正在运行的线程:      1.使用退出标志,是线程正常退出,也就是run方法完成后线程终止.      2.使用stop方法强制终止线程,但不推荐使用 ...

  8. Java自学-多线程 常见线程方法

    Java 常见的线程方法 示例 1 : 当前线程暂停 Thread.sleep(1000); 表示当前线程暂停1000毫秒 ,其他线程不受影响 Thread.sleep(1000); 会抛出Inter ...

  9. 正确的停止java中的线程

    stop()方法不是一个正确的停止线程方法. 正确的停止方法:设置退出旗标

随机推荐

  1. 关于adb命令获取安卓手机uuid时,demon 显示启动成功,但又获取不到uuid的解决办法:现象如下所示

    * daemon not running. starting it now on port 5037 * *demon started successfully* *list of devices a ...

  2. Java并发编程系列-(7) Java线程安全

    7. 线程安全 7.1 线程安全的定义 如果多线程下使用这个类,不过多线程如何使用和调度这个类,这个类总是表示出正确的行为,这个类就是线程安全的. 类的线程安全表现为: 操作的原子性 内存的可见性 不 ...

  3. C# Winform中WebBrowser给网页中的input控件赋值/设置值

    订阅WebBrowser的DocumentCompleted事件,在里面写入 private void browser_DocumentCompleted(object sender, WebBrow ...

  4. XHProf报告字段含义

    Function Name:方法名称. Calls:方法被调用的次数. Calls%:方法调用次数在同级方法总数调用次数中所占的百分比. Incl.Wall Time(microsec):方法执行花费 ...

  5. iOS- 推送消息

    1 ios 如何判断是点击推送信息进入还是点击app图标进入程序? 设备接到apns发来的通知,应用处理通知有以下几种情况: 1. 应用还没有加载 这时如果点击通知的显示按钮,会调用didFinish ...

  6. webstorm关闭vim模式

  7. java-对象的区别

    1.JavaBean 是一种JAVA语言写成的可重用组件.为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器.JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员 ...

  8. Reset Password 重置密码 (CentOS 5,6,7 ; Juniper Networks: SRX100 )

    一些重置root 密码的文档分享(来自官网): CentOS 5,6,7 Juniper Networks :  SRX100 链接:https://share.weiyun.com/5BM4kwK ...

  9. Class WriteGroupAttribute

    [WriteGroup]可以排除在创建已声明写入同一组件的查询时未知的组件. 这允许安全地扩展组件系统而无需编辑先前存在的系统. 目标是为期望将数据从一组组件(输入)转换为另一组(输出[s])的系统能 ...

  10. 终端复用器tmux基础使用

    简介对于经常操作Linux系统的同学来说,远程连接Linux服务器使用最多的工具是SecureCRT或者Xshell,而将此时的环境称为终端环境.Tmux是两个单词的缩写,即“Terminal Mul ...