最贊回答 / 不愛吃泡飯
實際執行語句的時間 晚于 設置的timer開始時間:scheduleAtFixedRate會補上應該執行的次數(以連續執行的方式,在實際上第一次執行的時候),schedule錯過了的次數不補。如果任務的耗時超過設置的時間間隔:scheduleAtFixedRate會嚴格按照時間點執行(于是任務并行執行著),而schedule上一個任務什么時候完成什么時候執行下一任誤才執行(無視延遲,串行執行)好吧,我知道你沒看懂,我寫的我也看不懂,舉例子:第一個區別:? ScheduleAtFixedRate同學曠課兩天...
2018-04-09
已采納回答 / 翔仔
同學好,定時的話肯定會占用一定的內存的,同學感興趣可以啟動一個定時任務,然后查看它的進程狀態便知。訂餐系統的話一般的做法其實只需要一個線程池去定時輪詢支付訂單的時間是否超時,超時取消即可,不用單獨為每個訂單設置一個定時器,只需要每分鐘輪詢一下即可,quartz即可滿足,具體需要同學去調研一下:)
2018-02-21
已采納回答 / 翔仔
同學您好,說的是單個timer只有一個后臺線程去執行任務,是可以new兩個timer去分別調用任務實現并發的,但是不建議這么做,因為線程之間需要交互的話,多個timer之間的線程不好協調
2017-05-30
已采納回答 / 翔仔
同學實在抱歉哈,可能我在錄課的時候比較匆忙,忘記交代這個是在MAC下進行編程了,在MAC上用的是kepler 2, 當時這個版本比較新,自帶了maven插件,不過現在我看了下貌似這個版本過時了,目前最新的是 eclipse neon;windows上可以用?Eclipse Luna ,這個還可以
2017-05-29
講師回答 / 翔仔
timer主要是依靠時間點來觸發的,分為距離現在多少時間后去觸發或者指定個具體的時間到點了觸發,java web也不例外,一般都應用在報表里,如統計每個月的銷量之類的,都會設定在月末某個非高峰的時候觸發統計。不知道有沒有理解對同學的意思哈。
2017-05-24
已采納回答 / 翔仔
不建議這樣使用timer哈,多個timer的話因為不在一個線程池子里,雖然理論上可以實現多線程但是線程并發的可控性不強。建議使用ScheduledExecutorService(輕量簡單,有一個線程池)或者使用Quartz(較重,但是功能更多)替代,方便對線程做控制以及處理一些可能出現的異常 :)
2017-05-24