求助如何可恢复地中断线程

_曙光 2014-10-28 08:01:47
java新手一个。
如何人为得终止一个正在执行的线程,又可以人为的恢复??
为了可以控制线程,我不得不将run方法先设置为死循环,然后在里面根据信号量quit的变化是否执行线程的方法
后来发现 “停止线程后” CPU的占用率升高很多,这是我不想要的。所以来求助如何中断线程并且把线程占的资源全部释放出去
public void run()
{
while(true)
{
if(quit==false) //判断线程是否继续运行
{
...........
........
//要执行的方法
try
{
Thread.sleep(n);
}catch(InterruptedException e){}
}

}
}
...全文
142 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
malebird 2014-10-29
  • 打赏
  • 举报
回复
waitnotify
  • 打赏
  • 举报
回复
引用 2 楼 u012551157 的回复:
[quote=引用 1 楼 littlebrain4solving 的回复:] 线程运行完成之后自动退出,任何一切手段直接搞死线程都是非法的。这种行为不被推荐,虽然JDK有过期的直接杀死的方式。 最好利用手段让线程正常的执行完成。
可是实验要求是要中间可以认为得中断线程呀,而且我的线程主要是承担着显示绘画功能,要一直不停绘图,不能停的啊[/quote] 那你自己通过AtomicInteger来控制线程的退出,当整型的值是多少的时候就停止绘画,让线程自己执行完成就可以了。
  • 打赏
  • 举报
回复
我想楼主看完这篇文章,一定能解决你的问题http://www.weixueyuan.net/html/6034.html
_曙光 2014-10-29
  • 打赏
  • 举报
回复
引用 1 楼 littlebrain4solving 的回复:
线程运行完成之后自动退出,任何一切手段直接搞死线程都是非法的。这种行为不被推荐,虽然JDK有过期的直接杀死的方式。 最好利用手段让线程正常的执行完成。
可是实验要求是要中间可以认为得中断线程呀,而且我的线程主要是承担着显示绘画功能,要一直不停绘图,不能停的啊
  • 打赏
  • 举报
回复
线程运行完成之后自动退出,任何一切手段直接搞死线程都是非法的。这种行为不被推荐,虽然JDK有过期的直接杀死的方式。 最好利用手段让线程正常的执行完成。

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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