zoukankan      html  css  js  c++  java
  • 取消线程

    有时当一个组件完成或被杀死后,开发者希望由它产生的线程同时也被杀死。例如,在某
    定义一个线程:

    private volatile Thread myThread;

    方法myThread. stop ( )已经弃用,因为它可能会导致应用程序进人不可预知的状态。
    相反,必要时可以在父组件的onStop ( )方法中使用如下的方法:

    //use to stop the thread myThread
    if(myThread!=null){
    Thread dummy=myThread;
    myThread=null;
    dummy .interrupt();
    }

    在应用程序层面上,还有另外一种方法也可以达到同样的效果,即使用方法setDaemon(true)方法将所有生成的线程声明为守护线程(daemon thread)。这样可以确保如果应用程序的主线程被杀死,那么该应用程序的所有守护线程也都会被同时杀死。

    //use when initially starting a threac
    myThread.setDaemon(true);
    myThread.start();

    最后我们总是可以在run()方法中使用while(isrun)循环,并且从循环外部设定isrun = false的方法来杀死线程。但这种方法的缺点就是不能有效的控制线程的停止时间。

  • 相关阅读:
    docker 会这些也够
    Linux 学会这些基本可以啦
    xxxxxxxxx
    Angular
    mongo
    node
    git clone 解决Permission Denied (publickey)问题
    vue项目如何刷新当前页面
    vue——动态路由以及地址传参
    vue 单页应用点击某个链接,跳转到新页面的方式
  • 原文地址:https://www.cnblogs.com/yuanyuan-5683/p/thread.html
Copyright © 2011-2022 走看看