我要发布
仪器网/ 仪器社区/ 计时器/ java关于Timer计时器的问题求解

java关于Timer计时器的问题求解

樱花落地浅笑    2016-08-19    计时器    浏览 260 次

new Timer(false).schedule(new java.util.TimerTask(){ public void run() { System.out.print("hello!"); this.cancel(); } },0,10); 以上代码片段,我每按一次键盘,就会执行一次,当我狂按键盘时(这段代码就... new Timer(false).schedule(new java.util.TimerTask(){
public void run() {
System.out.print("hello!");
this.cancel();
}
},0,10);
以上代码片段,我每按一次键盘,就会执行一次,当我狂按键盘时(这段代码就会执行很多次),然后我发现电脑的cpu占用超高,退出java程序cpu占用才掉下来,我不是已经写了cancel();吗?难道每次执行创造的线程都没有退出?目前我认为是重复大量创建线程是的cpu占用过高的。请问怎么才能每执行完成后,有就结束掉线程,或者说,cpu占用过高是其他原因?

精彩问答
ljx123456aas 发布日期:2016-08-20
timer内部有TimerTask。TimerTask可以取消cancel()。取消了,但是还在timer内部。
timer.purge()移除取消了的任务。
所以 Z好 cancel 之后调用 purge 然后 置空timer timer =null;
不调用timer.cancel(),timerTask线程会一直被执行,
调用timer.cancel(),timerTask也会执行完当次之后结束。
Z好
if(timer!=null){
timer.cancel();
timer.purge();
timer=null;
}
全部评论
严小华2009 发布日期:2016-08-20
在javax.swing包中有一个Timer类,可以实现计时功能,方法start():启动计时器,stop()停止计时器,具体实现可以参考JDK文档。
最新主题
相关版块
我要评论
X您尚未登录
账号登录
X您尚未登录
手机动态密码登录
X您尚未登录
扫码登录

当前页面为旧版页面,诚邀您切换到新版页面。| 感受更多精心打造的新增功能、更加流畅的操作体验。

官方微信

仪器网微信服务号

扫码获取最新信息


仪器网官方订阅号

扫码获取最新信息

在线客服

咨询客服

在线客服
工作日:  9:00-18:00
联系客服 企业专属客服
电话客服:  400-822-6768
工作日:  9:00-18:00
订阅商机

仪采招微信公众号

采购信息一键获取海量商机轻松掌控