线程停止

本文探讨了如何优雅地停止Java线程,强调避免使用已废弃的stop和destroy方法,建议通过设置标志位来控制线程的停止。示例代码展示了如何创建一个带有公共stop方法的Runnable实现,该方法改变标志位以终止线程执行。在main方法中,当循环达到特定条件时调用这个stop方法,实现了线程的可控停止。
摘要由CSDN通过智能技术生成

线程停止

注意点:

1.建议线程正常停止,利用次数,不建议死循环
2.建议使用一个标志位来判断是否停止
3.不要使用jdk提供的stop和destroy方法,因为已废弃

具体实现步骤及代码:
package com.heima.Multithreading;

//测试stop
//1.建议线程正常停止,利用次数,不建议死循环
//2.建议使用一个标志位来判断是否停止
//3.不要使用jdk提供的stop和destroy方法,因为已废弃
public class Stop implements Runnable{

    //创建一个标志位来判断是否停止
    private boolean flag = true;

    @Override
    public void run() {
        int i = 0;
        while(flag){
            System.out.println("线程运行"+i++);
        }
    }
    //设置一个公开的方法来停止线程,实质是转换标志位
    public void stop(){
        this.flag = false;
        System.out.println("线程停止");
    }

    public static void main(String[] args) {
        Stop stop = new Stop();
        new Thread(stop).start();

        for (int i = 0; i < 1000; i++) {
            System.out.println("main"+i);
            if (i==900){
                stop.stop();
            }
        }
    }
}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这里我们不难看出 , 线程 stop 在运行 , 而main函数里的for循环也在运行 ( 独立,不影响 ) , 只是我们设置了在 mian 里的 for 运行到 900 时 stop 停止运行.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值