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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java基礎(chǔ)學(xué)習(xí):java定時器

Java基礎(chǔ)學(xué)習(xí):java定時器

更新時間:2020-03-27 13:45:39 來源:動力節(jié)點(diǎn) 瀏覽3533次

     一、定時器:

  顧名思義,定時器是定時執(zhí)行的任務(wù)。定時器的應(yīng)用場景很廣,比方說,定時更新排行榜的用戶信息、定時刷新首頁列表數(shù)據(jù)到緩存等等

  二、Java中實(shí)現(xiàn)定時任務(wù)的幾種方式

  1、原生態(tài)Timer,優(yōu)點(diǎn)是方便快速,缺點(diǎn)是每一個任務(wù)都需要占用一個線程資源,而且任務(wù)拋異常出去后,定時任務(wù)下次就不會在執(zhí)行了

  2、ScheduledExecutorService,這是Java5以后提供的一個類,可以很方便的實(shí)現(xiàn)定時調(diào)度。

  ScheduledExecutorServiceservice=Executors.newScheduledThreadPool(5);//創(chuàng)建調(diào)度服務(wù),線程池?cái)?shù)量為5

  service.scheduleAtFixedRate(Runnablecommand,longinitialDelay,longperiod,TimeUnitunit);//開啟調(diào)度,command是所要執(zhí)行的任務(wù),initialDelay是初始化延時時間,period是調(diào)度周期,unit是時間單位

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

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

  publicvoidupdateXxx(){...}

  這種方式很方便,而且也是基于線程池的方式,數(shù)量可以通過xml配置。如果項(xiàng)目中有很多定時任務(wù),那么就需要相對應(yīng)的調(diào)大線程池?cái)?shù)量,不然就得排隊(duì)了。

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

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

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

  1、如何保證多個定時器中同一個任務(wù)只有一個在執(zhí)行

  2、如何避免死鎖

  3、另一個詭異的問題是,明明已經(jīng)加鎖了,但還是被重復(fù)執(zhí)行了

  四、解決方案

  多個定時器中的同一個任務(wù)只有一個在執(zhí)行。這個時候光靠Java本身提供的鎖機(jī)制是沒辦法實(shí)現(xiàn)的,需要借助第三方的力量,這里使用的是Redis,因?yàn)樗咝?,性能好、單?jié)點(diǎn)支持qps已經(jīng)超過了1萬,所以性能是非常高的。其中用到的是Redis的set命令。

  原型是:SETkeyvalue[EXseconds][PXmilliseconds][NX|XX]

  EXsecond:設(shè)置鍵的過期時間為second秒。

  PXmillisecond:設(shè)置鍵的過期時間為millisecond毫秒。

  NX:只在鍵不存在時,才對鍵進(jìn)行設(shè)置操作。

  XX:只在鍵已經(jīng)存在時,才對鍵進(jìn)行設(shè)置操作。

  例子:

  setmylock192.168.1.100EX5NX

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

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

Java基礎(chǔ)學(xué)習(xí):java定時器

  以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對“Java基礎(chǔ)學(xué)習(xí):java定時器”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時為你服務(wù)。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久青草视频在线 | 亚洲久久草| 九九热视频精品在线 | 免费人成激情视频在线看 | 中文字幕亚洲 综合久久 | 亚洲人成在线免费观看 | 亚洲精品日韩一区二区 | 亚洲国产成人久久综合区 | 国内精品51视频在线观看 | 99国产精品视频免费观看 | 亚洲天堂久久 | 男人天堂网在线观看 | 成人免费毛片视频 | 亚洲国产精品综合久久 | 草久影院 | 四虎最新永久在线精品免费 | 99热热久久这里只有精品8 | 免费一级特黄欧美大片久久网 | 亚洲精品ccc| 国产最新精品 | 亚洲一区中文字幕在线观看 | 一本本久综合久久爱 | 国产精品久久久久久久久夜色 | 国产手机在线精品 | se色成人亚洲综合 | 久久精品成人 | 夜夜夜夜夜夜夜工噜噜噜 | 免费播放欧美毛片 | 草草第一页 | 国产精品揄拍一区二区久久 | 天天操狠狠| 国产成人精品久久 | 中文字幕亚洲一区二区va在线 | 日本xxxxx18护士xxx | 欧美一级毛片片免费 | 天天干天天操天天操 | 久久综合久久美利坚合众国 | 国产性较精品视频免费 | 人与禽交免费网站视频 | 国产系列欧美系列日韩系列在线 | 精品久久伦理中文字幕 |