Android立刻终止一个线程
/**
 * Created by JuTao on 2017/2/4.
 * 如何中止一个线程
 */
public class ThreadDone {
  public static void main(String[] args) throws InterruptedException {
    MyRunnable myRunnable=new MyRunnable();
    Thread thread = new Thread(myRunnable);
    thread.start();
    Thread.sleep(1000);
    //仅仅利用flag并不能使线程立刻中止,当run方法中有耗时操作时会等待执行完成才结束
    myRunnable.flag=false;
    thread.interrupt();
  }
  private static class MyRunnable implements Runnable {
    //立刻同步到子线程中
    private volatile boolean flag = true;
    @Override public void run() {
      while (flag&&!Thread.interrupted()) {
        System.out.println("running");
        try {
          Thread.sleep(8000);
        } catch (InterruptedException e) {
          //e.printStackTrace();
          //thread.interrupt()执行后会立刻进入catch
          return;
        }
      }
    }
  }
}Android立刻终止一个线程的更多相关文章
- 第5章   不要让线程成为脱缰的野马(Keeping your Threads on Leash)  ---干净的终止一个线程
		干净的终止一个线程 我曾经在第2章产生一个后台线程,用以输出一张屏幕外的 bitmap 图.我们必须解决的一个最复杂的问题就是,如果用户企图结束程序,而这张bitmap 图尚未完成,怎么办?第2章的 ... 
- Android怎样保证一个线程最多仅仅能有一个Looper?
		1. 怎样创建Looper? Looper的构造方法为private,所以不能直接使用其构造方法创建. private Looper(boolean quitAllowed) { mQueue = n ... 
- Qt学习之如何启动和终止一个线程
		先来给出每个文件的相关代码然后再加以分析 //*************dialog.h**************// #ifndef DIALOG_H #define DIALOG_H #incl ... 
- 在Java中如何正确地终止一个线程
		1.使用Thread.stop()? 极力不推荐此方式,此函数不安全且已废弃,具体可参考Java API文档 2.设置终止标识,例如: import static java.lang.System.o ... 
- android 如何结束一个线程
		总结: 1 不推荐直接调用onstop()强制结束,,因为不安全 2 run()比较短暂,执行完毕会自动停止 3 在run()设置一个flag标识,满足条件才执行; 4 通过sleep()捕获异常,在 ... 
- java中怎么终止一个线程的执行----个人学习心得
		参考了一下两个网站的介绍: ①:http://blog.csdn.net/liuhanhan512/article/details/7077601 ②:http://www.blogjava.net/ ... 
- 安全终止MFC线程
		终止线程 有两种情况可以使线程结束:控制函数结束或者根本就不允许线程完成,而提前终止它.我们可以想象在WORD中进行后台打印,如果打印结束了,那线程就可以结束了.如果用户中止了打印,那后台打印线程也要 ... 
- Java线程状态、线程start方法源码、多线程、Java线程池、如何停止一个线程
		下面将依次介绍: 1. 线程状态.Java线程状态和线程池状态 2. start方法源码 3. 什么是线程池? 4. 线程池的工作原理和使用线程池的好处 5. ThreadPoolExecutor中的 ... 
- java 线程实现、线程暂停和终止 、线程联合join、线程基本信息获取和设置、线程优先级
		转载地址:速学堂 https://www.sxt.cn/Java_jQuery_in_action/eleven-inheritthread.html 1. 通过继承Thread类实现多线程 继承Th ... 
随机推荐
- Python通过ssh连接服务器并执行命令
			[本文出自天外归云的博客园] 脚本示例如下: # coding:utf-8 import time,paramiko,re,StringIO def exec_shell(command): ''' ... 
- JAVA-JSP内置对象之session对象
			相关资料:<21天学通Java Web开发> session对象 1.session对象用来表示用户的会话状况,一般用于保存用户的各种信息.2.直到生命周期超时或者被认为释放掉为止. 方法 ... 
- 基于jQuery和CSS3超酷Material Design风格滑动菜单导航特效
			分享一款效果非常炫酷的谷歌 Material Design 风格jQuery和CSS3滑动选项卡特效.该选项卡特效集合了扁平风格设计和按钮点击波特效.是一款设计的非常不错的Material Desig ... 
- Android GridView的使用页面按钮
			GridView(网格视图),用来显示网格,用来显示一些按钮比较好用. 上代码吧. 主页面:activity_main.xml 添加一个GridView用来显示按钮的列表 <?xml versi ... 
- 老项目Xcode5.1编译器错误
			老项目编译器错误html, body {overflow-x: initial !important;}html { font-size: 14px; } body { margin: 0px; pa ... 
- C#中的volatile关键字
			volatile 关键字指示一个字段可以由多个同时执行的线程修改. 声明为 volatile 的字段不受编译器优化(假定由单个线程访问)的限制. 这样可以确保该字段在任何时间呈现的都是最新的值. vo ... 
- putty配色备份
			[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\Solarized%20Dark] "Colour0"="1 ... 
- 键盘 Input子系统
			应用层测试代码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <li ... 
- Vagrant (1) —— 基本安装与配置(上)
			Vagrant (1) -- 基本安装与配置(上) 摘要 基本安装与配置 版本 Vagrant版本: 1.8.1 内容 启动运行 $ vagrant init hashicorp/precise64 ... 
- c# 利用反射清除事件
			控件的事件清除,除了-=,就只能依靠反射来执行了. /// <summary> /// 清除一个对象的某个事件所挂钩的delegate /// </summary> /// & ... 
