Java 中通知线程退出的理解

Posted 路宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 中通知线程退出的理解相关的知识,希望对你有一定的参考价值。

问题:
启动一个线程t ,要求在main线程中去停止线程t

实现代码如下,具体注释已经在代码中给出哈

public class ThreadExit 
    public static void main(String[] args) 
        T t = new T();
        t.start();

        //如果希望main主线程,去控制t线程的终止,必须修改loop
        //让t 退出run方法 从而终止t线程 ->通知方式

        //让主线程休眠10秒,再通知t1线程退出
        System.out.println("main线程休眠10s...");
        try 
            Thread.sleep(10 * 1000);
         catch (InterruptedException e) 
            e.printStackTrace();
        
        t.setLoop(false);
    


class T extends Thread 
    private int count = 0;
    //设置一个控制变量
    private boolean loop = true;

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

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

运行结果:

以上是关于Java 中通知线程退出的理解的主要内容,如果未能解决你的问题,请参考以下文章

来自 JetpackNavigation 库中通知的隐式深层链接

在多个等待线程中通知后哪个线程将开始运行[重复]

为啥提供者组合不会在飞镖测试中通知其新状态?

JAVA 对守护线程的理解

android中通知图标的颜色

swift中通知的使用方法