大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java基礎學習:java定時器的實現

Java基礎學習:java定時器的實現

更新時間:2020-04-01 15:07:12 來源:動力節點 瀏覽2302次


  一、定時器:


  顧名思義,定時器是定時執行的任務。定時器的應用場景很廣,比方說,定時更新排行榜的用戶信息、定時刷新首頁列表數據到緩存等等


  二、Java中實現定時任務的幾種方式


  1、原生態Timer,優點是方便快速,缺點是每一個任務都需要占用一個線程資源,而且任務拋異常出去后,定時任務下次就不會在執行了


  2、ScheduledExecutorService,這是Java5以后提供的一個類,可以很方便的實現定時調度。


  ScheduledExecutorService service = Executors.newScheduledThreadPool(5); // 創建調度服務,線程池數量為5


  service .scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit); // 開啟調度,command是所要執行的任務,initialDelay是初始化延時時間,period是調度周期,unit是時間單位


  3、Spring提供的定時器,例如,以下例子是每一分鐘執行一次的任務


  @Scheduled(cron = "0 */1 * * * ?")


  public void updateXxx(){ ... }


  這種方式很方便,而且也是基于線程池的方式,數量可以通過xml配置。如果項目中有很多定時任務,那么就需要相對應的調大線程池數量,不然就得排隊了。


  三、分布式定時器所遇到的問題


  分布式定時器:簡單理解就是多個定時器同時部署,定時器中的各個任務相互協作


  可能遇到的問題(包括但不限于此):


  1、如何保證多個定時器中同一個任務只有一個在執行


  2、如何避免死鎖


  3、另一個詭異的問題是,明明已經加鎖了,但還是被重復執行了


  四、解決方案


  多個定時器中的同一個任務只有一個在執行。這個時候光靠Java本身提供的鎖機制是沒辦法實現的,需要借助第三方的力量,這里使用的是Redis,因為它高效,性能好、單節點支持qps已經超過了1萬,所以性能是非常高的。其中用到的是Redis的set命令。


  原型是:SET key value [EX seconds] [PX milliseconds] [NX|XX]


  EX second :設置鍵的過期時間為 second 秒。


  PX millisecond :設置鍵的過期時間為 millisecond 毫秒。


  NX :只在鍵不存在時,才對鍵進行設置操作。


  XX :只在鍵已經存在時,才對鍵進行設置操作。


  例子:


  set mylock 192.168.1.100 EX 5 NX


  上邊的例子中設置key為mylock,value為192.168.1.100,EX 5表示過期時間為5秒鐘,NX表示當key不存在的時候再設置。這里為什么要把value設置為IP呢,原因是可以追蹤是誰占有著這把鎖。


  設置成功時返回OK,失敗則返回nil,利用這個特性就可以實現分布式鎖了。其中設置5秒的過期時間可以避免死鎖的發生


Java基礎學習:java定時器的實現


  以上就是動力節點Java培訓機構的小編針對“Java基礎學習:java定時器的實現”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产日韩欧美亚洲 | 六色视频 | 国产精品久久久久免费 | 国产福利在线观看永久免费 | 国产福利视频一区 | 91精品国产综合久久福利 | 天天摸夜夜| 国产精品亚洲一区二区麻豆 | 视频二区 中文字幕 欧美 | 久热精品视频在线播放 | 欧美成人一区二区三区 | 理论片黄色 | 在线观看麻豆国产精品 | 日本精品高清一区二区2021 | 91啦中文成人| 老子影院无码午夜伦不卡 | 国产不卡免费 | 九九热免费在线视频 | 99re这里只有精品在线观看 | 日韩欧美在线看 | 欧美老司机 | 这里精品 | 毛茸茸的浓密在线视频 | 四虎免费在线播放 | 国产综合成人久久大片91 | 欧美性色生活片天天看99 | 成人精品免费网站 | 99国产精品久久久久久久日本 | 免费夜色污私人影院网站 | 亚洲精品乱码一区二区在线观看 | 天天舔天天舔 | 五月伊人| 国产精品国产三级国产专区5o | 色爱视频 | 国产我不卡| 日日摸日日碰夜夜97 | 日本h在线精品免费观看 | 国产一区在线视频观看 | 亚洲欧美一区二区三区麻豆 | 亚洲精品一区二区三区香蕉在线看 | 久久草在线观看 |