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的方法来杀死线程。但这种方法的缺点就是不能有效的控制线程的停止时间。

  • 相关阅读:
    web中间件常见漏洞
    心脏滴血与利用
    mimikatz提取windows密码
    Linux文本编辑器
    Linux打包(归档 )压缩命令
    linux文件和目录命令
    SSL原理
    windows server 2008 安装步骤
    渗透测试术语
    centos 7 修改yum配置
  • 原文地址:https://www.cnblogs.com/yuanyuan-5683/p/thread.html
Copyright © 2011-2022 走看看