免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
如何暫停/重啟(Pause/Restart)一個(gè)TimerTask而不是銷毀/新建(Cancel/Renew)一個(gè)TimerTask
直接在TimerTask中使用cancel()方法將其暫停后,
似乎無法直接再讓它重新啟動(dòng)起來(直接在Timer中schedule這個(gè)已經(jīng)cancel的timertask會(huì)拋出IllegalStateException異常)。
實(shí)際需求為:
1. TimerTask中的run方法可以控制該TimerTask進(jìn)入暫停狀態(tài)
2. TimerTask進(jìn)入暫停狀態(tài)后,可以在其他類中調(diào)用某方法重新激活該TimerTask,使其進(jìn)入定期運(yùn)行狀態(tài)
#1樓 得分:9回復(fù)于:2009-02-25 10:06:38
樓主可以將Timer換成多線程的啊....
在使用多線程時(shí),使用一個(gè)標(biāo)志來決定是否運(yùn)行....
#3樓 得分:100回復(fù)于:2009-02-25 10:33:21
Java code
import java.util.Timer;import java.util.TimerTask;public class Test1 { public static void main(String[] args) { final MyTimerTask task = new MyTimerTask(); new Timer().scheduleAtFixedRate(task, 0, 1000); Thread thread = new Thread() { public void run() { while(true) { try { Thread.sleep(1500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } synchronized (task) { task.condition = true; System.out.println("notify..."); task.notifyAll(); } } }; }; thread.start(); }}class MyTimerTask extends TimerTask{ public volatile boolean condition = false; public void run() { synchronized (this) { while(!condition) { System.out.println("Waiting..."); try { wait(); } catch (InterruptedException e) { Thread.interrupted(); } } } try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("Continue task...Done."); condition = false; }}
#6樓 得分:0回復(fù)于:2009-02-25 14:38:15
請問MT502  (3#)
如下這段代碼中:
Java code
synchronized (task) { task.condition = true; System.out.println("notify..."); task.notifyAll(); }
為什么要將task加到同步塊中?
這個(gè)synchronized的具體作用是什么?
我試著去掉同步,結(jié)果會(huì)拋出“java.lang.IllegalMonitorStateException”異常。
#7樓 得分:40回復(fù)于:2009-02-25 14:41:41
引用 6 樓 talent_marquis 的回復(fù):
請問MT502
如下這段代碼中:
Java code
synchronized (task) {
task.condition = true;
System.out.println("notify...");
task.notifyAll();
}
為什么要將task加到同步塊中?
這個(gè)synchronized的具體作用是什么?
我試著去掉同步,結(jié)果會(huì)拋出“java.lang.IllegalMonitorStateException”異常。
這是因?yàn)橐{(diào)用某個(gè)對象的notify,wait方法,必須擁有該對象的監(jiān)視鎖,而該監(jiān)視鎖可以通過synchronized該對象獲得。
#8樓 得分:0回復(fù)于:2009-02-25 16:30:04
非常感謝!
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Java實(shí)現(xiàn)定時(shí)任務(wù)的三種方法
Java并發(fā)編程:Timer和TimerTask(轉(zhuǎn)載)
多線程實(shí)現(xiàn)方式
Android的線程使用來更新UI
架構(gòu)系列——定時(shí)任務(wù)中的Timer類使用簡析
Java實(shí)現(xiàn)簡單定時(shí)任務(wù)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服