码迷,mamicode.com
首页 > 移动开发 > 详细

Android线程池中的任务取消

时间:2014-11-11 09:13:06      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:android   blog   http   ar   java   sp   on   art   问题   

============问题描述============


  ExecutorService pool = Executors.newFixedThreadPool(2); 
  //创建实现了Runnable接口对象,Thread对象当然也实现了Runnable接口 
  Thread t1 = new MyThread(); 
  Thread t2 = new MyThread(); 
  Thread t3 = new MyThread(); 
  Thread t4 = new MyThread(); 
  Thread t5 = new MyThread(); 
  //将线程放入池中进行执行 
  pool.execute(t1); 
  pool.execute(t2); 
  pool.execute(t3); 
  pool.execute(t4); 
  pool.execute(t5); 


上面创建了一个固定为2个线程的线程池,在某一时刻有没有办法判断t1、t2、t3、t4、t5是正在排队等待,还是已经在执行,因为我想将正在排队等待的任务取消掉,免得浪费资源
注:我用的就是这篇文章中的第一种方法http://blog.csdn.net/lyf_007217/article/details/8542238

============解决方案1============


 java.util.concurrent.ExecutorService;
 java.util.concurrent.Executors;
看看这两个包里面的api

============解决方案2============


IntentService提供一个工作者线程队列。

============解决方案3============


要想取消,就实现Callable接口,然后调用pool.submit()方法,返回 futrue对象,可以用 future对象来获取线程的状态。

这些 都是 J U C 里面的东西 。
源码分析见:
http://blog.csdn.net/windsunmoon/article/details/36903901

Android线程池中的任务取消

标签:android   blog   http   ar   java   sp   on   art   问题   

原文地址:http://www.cnblogs.com/meizhenfen42/p/4088647.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!