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
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
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

Suggested prompts:

Can you show me the code for the PageVisitCounterImpl class?

What do the incrementVisit() and getVisitCount() methods currently look like?

Can you explain how the Main class is creating and running the threads?

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