如何取消一个正在运行的线程

愚蠢的土拨鼠ID 2014-09-11 07:20:07
我现在想实现的功能是,点击左边9个按钮中的任一个,创建10个线程向服务器请求10张图片,我现在遇到的麻烦就是,当我快速而且连续随机点击左边的按钮时,那不是会创建几十甚至上百个线程啊(已测试,线程过多直接导致手机死掉了),而我只想要最后一次点击按钮请求的图片。大家帮我想想怎么办啊,我是该只创建一个线程请求完一张图片后,再去创建线程请求下一张,还是怎么办啊!我不知道怎么kill掉一个正在运行的线程,注:该线程无循环.
大家有什么好的思路都说说啊
...全文
396 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwang89123 2015-02-27
  • 打赏
  • 举报
回复
学习了
  • 打赏
  • 举报
回复
谢谢楼上给位了
新靖界 2014-09-12
  • 打赏
  • 举报
回复
java中线程是不能取消的,想其他办法解决吧
梦_影 2014-09-12
  • 打赏
  • 举报
回复
可以用IntentService启动后台服务加载线程,这个只会一个一个的加载,加载完一个就会结束掉一个线程
windsunmoon 2014-09-12
  • 打赏
  • 举报
回复
可以提交执行FutuTask


 ExecutorService aa = Executors.newCachedThreadPool();
	  FutureTask<String>  a = new FutureTask<String>(new Callable<String>() {

		@Override
		public String call() throws Exception {
			return null;
		}
	 
	   });
	  aa.submit(a);
	  a.cancel(true);
  • 打赏
  • 举报
回复
楼上好多都说用线程池,那如果按照下面的方式 ExecutorService pool = Executors.newFixedThreadPool(2); //创建实现了Runnable接口对象,Thread对象当然也实现了Runnable接口 MyThread t1 = new MyThread(); MyThread t2 = new MyThread(); MyThread t3 = new MyThread(); MyThread t4 = new MyThread(); MyThread t5 = new MyThread(); //将线程放入池中进行执行 pool.execute(t1); pool.execute(t2); pool.execute(t3); pool.execute(t4); pool.execute(t5); 上面创建了一个有2个线程的线程池,有没有办法判断t1、t2、t3、t4、t5是正在排队等待,还是已经在执行,因为我想将正在排队等待的任务取消掉,假如说t1、t2正在执行,那我想把后面三个正在排队等待的任务取消掉,该怎么办喃
搞什么灯儿 2014-09-12
  • 打赏
  • 举报
回复
线程池。。。
skgary 2014-09-11
  • 打赏
  • 举报
回复
引用 楼主 jhonzengxuejun 的回复:
我现在想实现的功能是,点击左边9个按钮中的任一个,创建10个线程向服务器请求10张图片,我现在遇到的麻烦就是,当我快速而且连续随机点击左边的按钮时,那不是会创建几十甚至上百个线程啊(已测试,线程过多直接导致手机死掉了),而我只想要最后一次点击按钮请求的图片。大家帮我想想怎么办啊,我是该只创建一个线程请求完一张图片后,再去创建线程请求下一张,还是怎么办啊!我不知道怎么kill掉一个正在运行的线程,注:该线程无循环. 大家有什么好的思路都说说啊
你既然是10个线程,那么,就判断一下这十个线程还在不在,如果在,要么不允许再请求,要么就是把请求排个队。。。 当然楼上说线程池,也是一个办法,
navalphantom 2014-09-11
  • 打赏
  • 举报
回复
用线程池吧,除非是优先级很高的,不然一般是用线程池 用法参考这篇文章
Birds2018 2014-09-11
  • 打赏
  • 举报
回复
10个线程太多了,建议你用线程池 开4,5个线程 可以复用 毕竟线程非常消耗CPU和内存。 线程是无法立刻停止的,可以在线程里面添加标志位如果线程下载图片成功就无需循环了, 如果用了线程池那就不需要了,可以长期利用线程,大概开2个线程就好了。
  • 打赏
  • 举报
回复
自己先顶一下再说

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧