【Java】线程终止

举报
兮动人 发表于 2022/04/28 09:29:34 2022/04/28
【摘要】 1. 基本说明当线程完成任务后,会自动退出。还可以通过使用变量来控制run方法退出的方式停止线程,即通知方式。 2. 案例说明需求:启动一个线程t,要求在main线程中去停止线程t,请编程实现。public class ThreadExit_ { public static void main(String[] args) throws InterruptedException { ...

1. 基本说明

  1. 当线程完成任务后,会自动退出。
  2. 还可以通过使用变量来控制run方法退出的方式停止线程,即通知方式。

2. 案例说明

  • 需求:启动一个线程t,要求在main线程中去停止线程t,请编程实现。
public class ThreadExit_ {
    public static void main(String[] args) throws InterruptedException {
        T t = new T();
        new Thread(t).start();
        //如果希望main线程去控制t线程的终止,必须可以修改 loop
        // 让 t 退出 run 方法,从而终止 t线程 --> 通知方式

        //让主线程休眠 10s 再通知 t线程退出
		System.out.println("main线程休眠10s...");
        Thread.sleep(10 * 1000);
        t.setLoop(false);
    }
}

class T implements Runnable {

    int count = 0;

    //设置一个控制变量
    private boolean loop = true;

    @Override
    public void run() {
        while (loop) {
            try {
                Thread.sleep(50);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("T 运行中..." + (++count));
        }
    }

    public void setLoop(boolean loop) {
        this.loop = loop;
    }
}

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。