Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Utfordring: Samtidig Map | Synkroniserte Samlinger
Multitråding i Java

bookUtfordring: Samtidig Map

Oppgave:

Implementering av multitrådet system for registrering av besøk på nettsider.

Beskrivelse:

Det skal lages et program for å holde oversikt over antall besøk på ulike sider på nettstedet. Programmet skal fungere korrekt i et multitrådet miljø, hvor flere tråder samtidig kan øke besøkstellere for forskjellige sider.

Krav:

  • Bruk ConcurrentHashMap for å lagre data om sidebesøk;
  • Implementer en metode som øker besøkstelleren for en gitt side. incrementVisit();
  • Implementer en metode som returnerer gjeldende besøksantall for en gitt side. getVisitCount();
  • Opprett flere tråder som skal øke besøkstellere samtidig. (Dette er implementert i klassen Main, du må finne ut hva som skjer der).

Tips:

  • Bruk ConcurrentHashMap for å lagre data der nøkkelen er URL til siden og verdien er besøksantallet;
  • Bruk metodene compute() eller merge() for å oppdatere tellere atomisk i ConcurrentHashMap.

Du må fullføre metodene i klassen PageVisitCounterImpl, og deretter kjøre testene i klassen PageVisitCounterTest.

Når du har fullført oppgaven riktig, skal alle tester bestå.

Note
Merk

Når du har gjort alt riktig, kan du prøve å redigere linjen der ConcurrentMap er deklarert i klassen PageVisitCounterImpl og se hva som skjer.

Det vil si, du må erstatte denne linjen her med implementasjonen av ConcurrentMap.

Main.java

Main.java

copy
1
private final ConcurrentMap<String, Integer> visitCounts = new ConcurrentHashMap<>();

I dette tilfellet, med implementeringen av den vanlige Map

Main.java

Main.java

copy
1
private final Map<String, Integer> visitCounts = new HashMap<>();
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 6

Spør AI

expand

Spør AI

ChatGPT

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

bookUtfordring: Samtidig Map

Sveip for å vise menyen

Oppgave:

Implementering av multitrådet system for registrering av besøk på nettsider.

Beskrivelse:

Det skal lages et program for å holde oversikt over antall besøk på ulike sider på nettstedet. Programmet skal fungere korrekt i et multitrådet miljø, hvor flere tråder samtidig kan øke besøkstellere for forskjellige sider.

Krav:

  • Bruk ConcurrentHashMap for å lagre data om sidebesøk;
  • Implementer en metode som øker besøkstelleren for en gitt side. incrementVisit();
  • Implementer en metode som returnerer gjeldende besøksantall for en gitt side. getVisitCount();
  • Opprett flere tråder som skal øke besøkstellere samtidig. (Dette er implementert i klassen Main, du må finne ut hva som skjer der).

Tips:

  • Bruk ConcurrentHashMap for å lagre data der nøkkelen er URL til siden og verdien er besøksantallet;
  • Bruk metodene compute() eller merge() for å oppdatere tellere atomisk i ConcurrentHashMap.

Du må fullføre metodene i klassen PageVisitCounterImpl, og deretter kjøre testene i klassen PageVisitCounterTest.

Når du har fullført oppgaven riktig, skal alle tester bestå.

Note
Merk

Når du har gjort alt riktig, kan du prøve å redigere linjen der ConcurrentMap er deklarert i klassen PageVisitCounterImpl og se hva som skjer.

Det vil si, du må erstatte denne linjen her med implementasjonen av ConcurrentMap.

Main.java

Main.java

copy
1
private final ConcurrentMap<String, Integer> visitCounts = new ConcurrentHashMap<>();

I dette tilfellet, med implementeringen av den vanlige Map

Main.java

Main.java

copy
1
private final Map<String, Integer> visitCounts = new HashMap<>();
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 6
some-alt