Cov kauj ruam yuav rov muaj dua kev pab raws qib tsim nyob rau hauv Java

Scheduling Tasks in Java

Teem dua cov paub tab nyob hauv Java

Txheej txheem cej luam: Nyob rau hauv daim ntawv no, peb yuav tham txog teem dua cov paub tab nyob rau hauv daim ntawv thov java. Muaj ntau txoj hau kev kom muaj kev rov muaj dua kev paub tab thiab peb yuav tham txog ib leeg ntawm no. Java muaj ntau yam APIs kom muaj kev rov muaj dua kev paub tab thiab peb yuav siv cov neeg nyob rau peb sab laj.







Taw qhia:

Nyob rau tej kev siv Java peb yuav khiav ib co kev pab cuam los ntawm kev. Ib qho piv txwv ntawm no yog generating hais tsis tseg. Java muaj cov feature teem tau tej kev pab raws qib as per lub.

Timer yog ib qho tseem ceeb tivthaiv hauv java los mus teem lub sij hawm pab raws qib/hauj lwm mus ib lub sij hawm thiab tseem dua tiav. Timer company tseem siv nyob rau hauv txoj kev loj hlob mobile thiab tus functionality yog zoo li ntawd ib daim ntawv thov java. Yog lwm company paub li ceeb toom rau hauv java thiab nws kuj yog siv lug nrog Timer cov chav kawm ntawv. Yog li tus ob hoob Timer thiab TimerTask yog lub ntsiab cheebtsam hauv Timer API. Java thov siv ob leeg yuav tau siv ntau yam functionalities. Tab sis peb yuav tsum to taub cov functionality Timer thiab TimerTask nyias. Tus TimerTask yog cov neeg ua hauj lwm/hauj lwm kom muaj ntawv kho mob tseg thiab lub Timer no yog tej yam nws tau executes nws. TimerTask yog kuj muaj feem nrog rau xov java. Nws implements Runnable interface thiab overrides tso txoj kev ua kev paub tab. Yog li cov kawm ob yog nyob teem rov muaj dua ua hauj lwm siv nyob rau hauv java lub plawv.

Peb xav txog cov cai hauv qab no snippet:

Qhia 1: Ib tug piv txwv coj timer

[Chaws]

pob com.Home.timer ;

ntshuam java.util.Timer ;

ntshuam java.util.TimerTask ;

pej xeem hoob MyTimer extends TimerTask {

Timer timer ;

rau cov menyuam suav = 0 ;

pej xeem MyTimer () {

}

pej xeem MyTimer ( Timer timer ) {

no.timer = timer ;

}

pej xeem khoob lug toDo() {

Tsim.tawm.println( ” Suav-> ” + (suav ) + ” : nyob zoo, lub ntiaj teb ! Qhov no nws yog java Schedule ” );

}

@Override

pej xeem khoob lug khiav () {

toDo () ;

Yog hais tias (suav > 10) {// qhov no yog qhov mob thaum koj xav nres cov

// neeg ua hauj lwm.

timer.cancel () ;

}

}

}

pob com.Home.timer ;

ntshuam java.util.Timer ;

pej xeem hoob MyScheduler {

pej xeem zoo li qub khoob lug ntsiab( Txoj hlua [] args ) {

Timer timer = tshiab Timer() ;

MyTimer myTask = tshiab MyTimer ( timer ) ;

rau cov menyuam firstSart = 1000 ; // nws txhais tau tias tom qab 1 thib ob.

rau cov menyuam Period = 1000*2 ; //tom qab uas ua hauj lwm yuav rov qab ua;

timer.Schedule(myTask, firstSart, lub sij hawm) ;//lub sij hawm teev muaj nyob rau hauv millisecond.

}

}

[/Chaws]

Nyob rau saum toj no piv txwv li peb saib tias lub hoob MyTimer extends lub java.util.TimerTask tau class uas muaj ib txoj kev paub daws teeb khiav. Mus dhia no yuav tsum muab los siv rau hauv peb cov chav kawm ntawv. Ntxiv rau no peb muaj txujci toDo uas tsis ua hauj lwm ua tau. Nyob hauv tus qauv cia peb muaj ib yam kev mob ntawd yog hais tias cov suav nqi 10 qhov kev pab cuam yuav txim tuag ntawd lub xeem thiab ces cheem. Cov java ua hauj lwm Schedule yuav siv tau teem paub tab qab:

  • Hauj lwm txhaj tshuaj tag ib
  • Rov muaj dua kev pab raws qib

Timer thiab TimerTask kawm nta:

  • Ua hauj lwm timer yuav siv nws rho txoj kev kom paub tab txhua lub sijhawm
  • Timer tseem yuav siv los khiav ua ib cov xov daemon
  • Timer neeg ua hauj lwm yuav tau teem tseg rov tom lub luv taag
  • Nws yuav siv tau los kuj muaj nyob hauv keeb kwm yav dhau rau yav tom ntej tiav
  • Paub tab yuav tsum configured khiav ua ib zaug xwb los sis rov muaj dua tiav
  • TimerTask yog ib lub handler xov thiab nws yuav muab siv los mus sau npe rau kev pab raws qib uas timer









Teem dua txhaj koob tshuaj tivthaiv rau ib tug neeg ua hauj lwm:

Peb xav txog cov cai hauv qab no snippet:

Qhia 2: Txhaj tshuaj tag ib Schedule

[Chaws]

pob com.Home.timer ;

ntshuam java.awt.Toolkit ;

ntshuam java.util.Timer ;

ntshuam java.util.TimerTask ;

pej xeem hoob RiceTimer {

lwm yam Thaum kawg Timer timer = tshiab Timer () ;

lwm yam Thaum kawg rau cov menyuam feeb ;

pej xeem RiceTimer( rau cov menyuam feeb ) {

no.feeb = feeb ;

}

pej xeem khoob lug pib() {

timer.Schedule(tshiab TimerTask() {

pej xeem khoob lug khiav () {

playSound () ;

timer.cancel () ;

}

lwm yam khoob lug playSound() {

Tsim.tawm.println ( ” Npaj koj cov mov no! ” );

Vam.getDefaultToolkit().beep() ;

}

}, feeb * 60 * 1000);

}

pej xeem zoo li qub khoob lug ntsiab( Txoj hlua[] args ) {

RiceTimer riceTimer = tshiab RiceTimer (20) ;

riceTimer.start () ;

}

}

[/Chaws]

Nyob rau hauv tus peb muaj kev pov plob hais tias nws yuav siv 20 feeb rau ib cov mov rau nws tau hau. Nyob rau hauv qhov kev pab cuam saum toj no, lub suab nrov beep tom qab buzzes 20 feeb nrog ib lus ntawm kom cov nplej no npaj. Kev pab cuam no sau rau ib lub sij hawm thiab yuav tsis tom qab nws thawj tiav. Nyob rau hauv ib lub Schedule txhaj tshuaj tag, tus qauv cia yog invoked thaum lub sij hawm lawm. Nws plays lub beep suab lus hais ntawm qhov screen. Daim ntawv thov tas sij hawm thaum sau cov timer.








Teem dua rov muaj dua kev pab raws qib:

Cov java timer yuav siv tau teem paub tab uas kom rau rov muaj dua tom lub luv. E.g. qhov chaws snippet nyob rau hauv daim qhia 1 prints no:

Qhia 3: Tso zis ib Schedule rov muaj dua

[Chaws]

Suav-> 0 : nyob zoo, lub ntiaj teb ! Qhov no nws yog java Schedule

Suav-> 1 : nyob zoo, lub ntiaj teb ! Qhov no nws yog java Schedule

Suav-> 2 : nyob zoo, lub ntiaj teb ! Qhov no nws yog java Schedule

Suav-> 3 : nyob zoo, lub ntiaj teb ! Qhov no nws yog java Schedule

Suav-> 4 : nyob zoo, lub ntiaj teb ! Qhov no nws yog java Schedule

Suav-> 5 : nyob zoo, lub ntiaj teb ! Qhov no nws yog java Schedule

Suav-> 6 : nyob zoo, lub ntiaj teb ! Qhov no nws yog java Schedule

Suav-> 7 : nyob zoo, lub ntiaj teb ! Qhov no nws yog java Schedule

Suav-> 8 : nyob zoo, lub ntiaj teb ! Qhov no nws yog java Schedule

Suav-> 9 : nyob zoo, lub ntiaj teb ! Qhov no nws yog java Schedule

Suav-> 10 : nyob zoo, lub ntiaj teb ! Qhov no nws yog java Schedule

[/Chaws]

Raws li peb pom no tias cov schedule tsis lawm thaum uas rau suav nce mus txog 10. Daim tshev no yog hais rau tus. Yog peb muaj ib tug yuav tsum tau los khiav qhov kev pab cuam no indefinitely peb tau rhuav tshem lub: Yog hais tias (suav > 10).

Lwm cov piv txwv ntawm ib tug neeg ua hauj lwm rov muaj dua Schedule yuav yog ib tug tswb moos los yog generating ntawv hais txhua hnub txhua sawv ntxov thaum uas 2 AM. Qhov kev siv yooj yim tswb moos nram qab no. Hauv no yuav siv txhua sawv ntxov nyob 6:00 KUV yuav muaj ib tug beep suab nrog cov lus uas qhia cov hnub tim thiab lub sijhawm.

Qhia 4: Ib qho yuav siv moos tswb

[Chaws]

pob com.Home.timer ;

ntshuam java.awt.Toolkit ;

ntshuam java.text.SimpleDateFormat ;

ntshuam java.util.Date ;

ntshuam org.tiling.scheduling.Scheduler ;

ntshuam org.tiling.scheduling.SchedulerTask ;

ntshuam org.tiling.scheduling.examples.iterators.DailyIterator ;

pej xeem hoob AlarmClock {

lwm yam Thaum kawg Schedule Schedule = tshiab Schedule () ;

lwm yam Thaum kawg SimpleDateFormat dateFormat =

tshiab SimpleDateFormat( ” hnub MMM xyoo HH:hli:ss li. SSS ” ) ;

lwm yam Thaum kawg rau cov menyuam hourOfDay, feeb, thib ob ;

pej xeem AlarmClock( rau cov menyuam hourOfDay, rau cov menyuam feeb, rau cov menyuam thib ob ) {

no.hourOfDay = hourOfDay ;

no.feeb = feeb ;

no.= thib ob ntxiv mus ;

}

pej xeem khoob lug pib () {

scheduler.Schedule (tshiab SchedulerTask () {

pej xeem khoob lug khiav () {

soundAlarm () ;

}

lwm yam khoob lug soundAlarm () {

Tsim.tawm.println(“Nyob zoo sawvntxov ! ” +

“Nws muaj ” + dateFormat.format ( tshiab Hnub () ) ) ;

Vam.getDefaultToolkit().beep() ;

}

}, tshiab DailyAlarmIterator (hourOfDay, feeb, thib ob) ) ;

}

pej xeem zoo li qub khoob lug ntsiab ( Txoj hlua [] args ) {

AlarmClock alarmClock = tshiab AlarmClock ( 6, 0, 0 );

alarmClock.start () ;

}

}

[/Chaws]

Kev pab cuam no yuav txawv cov txhuv timer li peb pom tias no peb tsim thaj ntawm cov schedule (org.tiling.scheduling.Scheduler) qhov uas cov Timer (java.util.Timer) ua si lub tswb. Kuj tsis teem ua hauj lwm dua tom qab ncua sij hawm tib tug xws li tom qhia 1, kev pab cuam no siv hoob kawm DailyIterator yuav txhais tau lub sij hawm. Cov chav kawm ntawv DailyIterator implements tus SheduleIterator interface. Lub ScheduleIterator nyiaj thiab lub sij tso rau ntawm tus SchedulerTask hauv lub java.util.Date. Ke () txoj kev hauv lub ScheduleIterator iterates ces lawm lub hnub khoom ib liag. Cov chav kawm ntawv DailyAlarmIterator’ lwm txoj kev rov rau hnub khoom uas nruab nrab yog tib lub sijhawm txhua txhua hnub 6:00 AM. Li ntawd, txog ntawm tus ntxiv mus () txoj kev uas peb tau txais 6:00 AM ntawm lub hnub. Qhov no yuav mus ntsuas kom muaj qhov kev pab cuam no tso tseg tsis.

Lub moj khaum Scheduling:

Lub moj khaum Scheduling muaj peb lub Cheebtsam:

  • Lub ScheduleIterator Interface.
  • Cov chav kawm ntawv Schedule.
  • Cov chav kawm ntawv SchedulerTask.

Hauv no peb peb twb sib tham txog cov SchedulerInterface nyob hauv kev nthuav dav. Lwm ob hoob Schedule thiab SchedulerTask cov chav kawm ntawv muaj raws li Timer thiab TimerTask kawm feem.

Zoo ib yam li cov txhuv timer, txhua tus lom cov schedule ib qho kev thaj ntawm Timer muab lwm npaj. Txhob siv tus hluas one-shot timer siv mus siv cov txhuv timer, cov schedule strings ua ke ib saw uas one-shot timers mus coj hoob kawm SchedulerTask uas muaj teev tseg rau hauv ScheduleIterator.

Txoj kev: Deb li peb tau tham txog cov schedule thiab rov muaj dua kev paub tab thiab lawv siv. Kuv vam tias koj tau ib tug to taub zoo txog cov ntsiab lus thiab yuav siv mus. Nram qab no yog ib co ntsiab lus yuav tsum nco ntsoov ua ntej xaiv qhov kev siv kom yog peb.

  • Nyob rau Java tus tsim tawm hiav tau ib qhov kev pab cuam tib pheej ntawm ib yam luv. Qhov no yog hu ua hauj lwm yuav teem dua.
  • Schedule yuav siv nyob rau lub sijhawm hauv qab no :
    • Teeb ib lub moos tswb.
    • Tau txais ntaub ntawv rau ib lub luv.
  • Schedule yuav ntawm ob yam :
    • Txhaj tshuaj tag ib Schedule.
    • Rov muaj dua Schedule.

 

 

 

Tagged:
============================================= ============================================== Yuav zoo TechAlpine phau ntawv rau Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Txaus siab rau qhov blog? Tshaj tawm lus thov :)

Follow by Email
LinkedIn
LinkedIn
Share