Utfordring: Lås og Betingelse
Oppgavebeskrivelse
Tenk deg at du skal designe en trafikklys-kontroller for et travelt kryss. Trafikklyssystemet består av tre faser: rødt lys, gult lys og grønt lys. Disse fasene må utføres i en bestemt rekkefølge for å sikre trygg og effektiv trafikkavvikling.
Din oppgave er å implementere metodene: redLight(), yellowLight() og greenLight(). Disse metodene må utføres strengt i rekkefølgen til et ekte trafikklys: først rødt lys, deretter gult lys, og til slutt grønt lys, uavhengig av rekkefølgen trådene kaller dem i.
Krav:
- Synkronisering: Sørg for at metodene utføres i streng rekkefølge;
- Multitråding: Metodene kan kalles fra ulike tråder, men utførelsen må skje i rekkefølgen:
redLight(),yellowLight()oggreenLight(); - Bruk Lock og Condition: Bruk
Lockfor å kontrollere tilgang til delte ressurser ogConditionfor å koordinere trådene.
Feltet counter i klassen TaskLockExample er angitt av en grunn, du må sjekke verdien i hver metode og avhengig av hva som står der avgjøre om denne tråden skal starte eller ikke.
Du må også bruke feltene lock og condition for å låse en tråd og bestemme hvem som skal være første, andre, tredje.
Når du har implementert metodene og gått videre til Main-klassen og kjørt dens main-metode, skal du få en utdata uansett rekkefølge og hvilken tråd som kjører hvilken metode.
Skriv også ut noe til konsollen for å sjekke om metodene utføres i riktig rekkefølge.
Du kan også bytte om på oppstarten av trådene (ikke implementasjonen i seg selv, men der hvor trådens start()-metode kalles)
Når du er sikker på at alt fungerer, kjør verifikasjonstestene på banen /src/test/java/TaskLockExampleTest.java.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 3.33
Utfordring: Lås og Betingelse
Sveip for å vise menyen
Oppgavebeskrivelse
Tenk deg at du skal designe en trafikklys-kontroller for et travelt kryss. Trafikklyssystemet består av tre faser: rødt lys, gult lys og grønt lys. Disse fasene må utføres i en bestemt rekkefølge for å sikre trygg og effektiv trafikkavvikling.
Din oppgave er å implementere metodene: redLight(), yellowLight() og greenLight(). Disse metodene må utføres strengt i rekkefølgen til et ekte trafikklys: først rødt lys, deretter gult lys, og til slutt grønt lys, uavhengig av rekkefølgen trådene kaller dem i.
Krav:
- Synkronisering: Sørg for at metodene utføres i streng rekkefølge;
- Multitråding: Metodene kan kalles fra ulike tråder, men utførelsen må skje i rekkefølgen:
redLight(),yellowLight()oggreenLight(); - Bruk Lock og Condition: Bruk
Lockfor å kontrollere tilgang til delte ressurser ogConditionfor å koordinere trådene.
Feltet counter i klassen TaskLockExample er angitt av en grunn, du må sjekke verdien i hver metode og avhengig av hva som står der avgjøre om denne tråden skal starte eller ikke.
Du må også bruke feltene lock og condition for å låse en tråd og bestemme hvem som skal være første, andre, tredje.
Når du har implementert metodene og gått videre til Main-klassen og kjørt dens main-metode, skal du få en utdata uansett rekkefølge og hvilken tråd som kjører hvilken metode.
Skriv også ut noe til konsollen for å sjekke om metodene utføres i riktig rekkefølge.
Du kan også bytte om på oppstarten av trådene (ikke implementasjonen i seg selv, men der hvor trådens start()-metode kalles)
Når du er sikker på at alt fungerer, kjør verifikasjonstestene på banen /src/test/java/TaskLockExampleTest.java.
Takk for tilbakemeldingene dine!