JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java 新手區 » 基本API  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
作者 Timer 中使用 Thread.wait 的問題
jimwayne





發文: 220
積分: 0
於 2011-11-07 16:24 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
小弟目前寫的程式希望讓程式固定每 6 小時去伺服器檢查版本更新
檢查到有新版本時就把新版本的檔案下載下來
不過下載的這個動作會在指定的時間才執行
因此有可能檢查到新版本以後等一個禮拜才會執行下載
但不知道這樣會不會造成事件被堆疊的問題?

例如設定下載時間固定是每星期六半夜 3 點
星期一中午 12 點時 Timer 被初始化,每 6 小時執行一次 TimerTask.run()
1
2
3
Timer timer = new Timer();
VersionUpdateAgent updateAgent = new VersionUpdateAgent();
timer.schedule(updateAgent, 0, 3600000);

VersionUpdateAgent 是 extend TimeTask
其中 VersionUpdateAgent.run() 的內容就是「檢查版本 → 有新版本時等待到下載時間 → 下載檔案」
如果當某次 updateAgent 被執行時發現有新版本,它就會執行 Thread.wait() 一直等到星期六
但是 Timer 在 6 小時以後又會執行一次 updateAgent (這裡先叫它 updateAgent<2> 來跟第一次執行的 updateAgent 做區別)
這個第二次被執行的 updateAgent<2> 應該一樣也會去檢查版本、等待到星期六?
那這樣從星期一下午 6 點到星期六半夜 3 點之間不是就會累積一大堆 updateAgent <N> 在等待下載?@@

1、想請問不知道小弟這樣的認知對不對?還是說 Timer 定時執行如果遇到前一個 TimeTask 尚未執行結束時,它會放棄執行?
2、如果這個狀況是有可能發生的,那想請問有沒有解套的方法呢?或者小弟應該改成什麼樣的寫法來達成定時檢查跟下載的目的?


reply to postreply to post
Java 工作者,但仍然是個初心者.....
話題樹型展開
人氣 標題 作者 字數 發文時間
1336 Timer 中使用 Thread.wait 的問題 jimwayne 821 2011-11-07 16:24
1103 Re:Timer 中使用 Thread.wait 的問題 kentyeh 76 2011-11-07 16:33
1083 Re:Timer 中使用 Thread.wait 的問題 jk47 342 2011-11-07 17:37
1142 Re:Timer 中使用 Thread.wait 的問題 jimwayne 217 2011-11-09 12:04
» JWorld@TW »  Java 新手區 » 基本API

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8