博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java多线程(7) - 多线程之线程停止方式
阅读量:4164 次
发布时间:2019-05-26

本文共 780 字,大约阅读时间需要 2 分钟。

线程停止方式

/**

 * 停止线程的方式

 */

public class J14ThreadCease {

    public static void main(String[] args) throws InterruptedException {

        AA aa = new AA();

        aa.setName("Test");

        aa.start();

        Thread.sleep(1000);

       

        //1stop() 停止线程,这个方法是已经过时了。

        //stop() 是强制直接停止线程,会导致线程可能执行到一半或存储一半的数据到数据库时就给停止了。

//      aa.stop();

       

        //2interrupt() 并不会立即终止线程,而是通知目标线程,有人希望停止这个线程,至于目标线程收到通知如何处理,则完全由目标线程自行决定。

        //本质是设置一个停止标志,将终端标志设置为true,并根据线程状态判断是否抛出异常。

        while (aa.isInterrupted()) {

             aa.interrupt();

        }

       

        //3、自行在线程中设置标志,来决定何时让线程运行完成,即while(flag)中的flag何时false,即终止状态

        System.out.println("主线程运行完毕");

    }

}

class AA extends Thread {

    @Override

    public void run() {

        for (int i = 0; i < 100; i++) {

             try {

                 sleep(100);

             } catch (InterruptedException e) {

                 e.printStackTrace();

             }

             System.out.println(Thread.currentThread().getName() + " " + i);

        }

    }

}

 

转载地址:http://rlmxi.baihongyu.com/

你可能感兴趣的文章
PHP中$_SERVER的详细用法
查看>>
类与对象(PHP5)之三:静态关键字(Static Keyword)
查看>>
SQL里的EXISTS与in、not exists与not in
查看>>
MySQL字符集及MySQL编码转换
查看>>
XSLT简介
查看>>
[翻译]xml的加密和解密
查看>>
Mysql数据库基本操作概要
查看>>
javascript比较日期
查看>>
在脚本中取table单元格的值(javascript)
查看>>
一些有用的js代码
查看>>
性能分析样例
查看>>
C#中out 及 ref 区别
查看>>
数字签名的原理
查看>>
.NET中RAS加解密和签名与验证的c#实现代码讲解,及实现程序提供
查看>>
根据控件ID获取控件
查看>>
ACE篇之四:通过ACE日志策略进行运行时配置
查看>>
ACE篇之五:ACE容器之一(双向链表)
查看>>
ACE篇之六:ACE容器之二(栈)
查看>>
ACE篇之七:ACE容器之三(队列)
查看>>
ACE篇之八:ACE容器之四(数组)
查看>>