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

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

長(zhǎng)沙一度軟件培訓(xùn)      2022-05-06 13:56:01     93

Java基礎(chǔ)學(xué)習(xí):java定時(shí)器線程,1.對(duì)象創(chuàng)建及方法調(diào)用  Timertimer=newTimer();  timer.schedule(newTimerTask(){  @Override  publicvoidrun(){  //

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹


      1.對(duì)象創(chuàng)建及方法調(diào)用

  Timertimer=newTimer();  timer.schedule(newTimerTask(){  @Override  publicvoidrun(){  //任務(wù)執(zhí)行代碼  }  },runDate);

  2.任務(wù)執(zhí)行時(shí)間與代碼調(diào)用時(shí)間的關(guān)系


  任務(wù)執(zhí)行時(shí)間在代碼調(diào)用時(shí)間之前:以代碼調(diào)用時(shí)間為準(zhǔn)


  任務(wù)執(zhí)行時(shí)間在代碼調(diào)用時(shí)間之后:以任務(wù)執(zhí)行時(shí)間為準(zhǔn)


  當(dāng)Timer對(duì)象執(zhí)行多個(gè)任務(wù)(TimerTask對(duì)象)時(shí),代碼調(diào)用時(shí)間不一定與任務(wù)的執(zhí)行時(shí)間相同,因?yàn)槟硞€(gè)任務(wù)的執(zhí)行時(shí)間可能會(huì)延遲。


  注:一個(gè)Timer對(duì)象中的多個(gè)TimerTask是以隊(duì)列的方式一個(gè)一個(gè)被順序執(zhí)行的。


  3.任務(wù)執(zhí)行時(shí)間與循環(huán)間隔時(shí)間的關(guān)系


  當(dāng)任務(wù)執(zhí)行的時(shí)間大于計(jì)劃的時(shí)間間隔時(shí),實(shí)際間隔時(shí)間為任務(wù)執(zhí)行的時(shí)間。


  4.schedule與scheduleAtFixedRate的區(qū)別


  如果任務(wù)的起始執(zhí)行時(shí)間在調(diào)用時(shí)間之后,則schedule與scheduleAtFixedRate在運(yùn)行效果上沒(méi)有區(qū)別,它們的區(qū)別在于追趕性(場(chǎng)景為任務(wù)的起始時(shí)間在調(diào)用時(shí)間之前,下同)。


  將兩個(gè)時(shí)間段內(nèi)的時(shí)間所對(duì)應(yīng)的任務(wù)被“補(bǔ)充性”地執(zhí)行,這就是Task任務(wù)的追趕特性。


  schedule不具有追趕性,即以代碼的執(zhí)行時(shí)間作為任務(wù)的起始時(shí)間,并按指定的間隔時(shí)間進(jìn)行任務(wù)循環(huán)執(zhí)行;而scheduleAtFixedRate具有追趕性,當(dāng)代碼執(zhí)行時(shí),會(huì)補(bǔ)充兩個(gè)時(shí)間段內(nèi)“欠缺”的任務(wù)執(zhí)行次數(shù),執(zhí)行完之后再以指定的間隔時(shí)間進(jìn)行任務(wù)循環(huán)執(zhí)行。


  5.方法cancel()的作用


  TimerTask對(duì)象的cancel()方法的作用是將自身從任務(wù)隊(duì)列中進(jìn)行清除,其他任務(wù)不受影響。


  Timer對(duì)象的cancel()方法的作用是將任務(wù)隊(duì)列中的所有任務(wù)進(jìn)行清除。


  當(dāng)Timer對(duì)象中只有一個(gè)任務(wù)隊(duì)列時(shí),任務(wù)執(zhí)行完后,Timer對(duì)象也不會(huì)銷毀,一直處于等待的狀態(tài),除非調(diào)用cancel()方法。



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


Java基礎(chǔ)學(xué)習(xí)

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。