Java多线程(7) - 多线程之线程停止方式

线程停止方式

/**

 * 停止线程的方式

 */

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);

        }

    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值