Haaste: Concurrentmap
Tehtävä:
Monisäikeisen kävijälaskentajärjestelmän toteutus.
Kuvaus:
Toteutettava ohjelma, joka seuraa eri sivujen käyntikertojen määrää. Ohjelman tulee toimia oikein monisäikeisessä ympäristössä, jossa useat säikeet voivat samanaikaisesti kasvattaa eri sivujen käyntilaskureita.
Vaatimukset:
- Käytä
ConcurrentHashMap-rakennetta tallentaaksesi tiedot sivukäynneistä; - Toteuta metodi, joka kasvattaa tietyn sivun käyntimäärää.
incrementVisit(); - Toteuta metodi, joka palauttaa tietyn sivun nykyisen käyntimäärän.
getVisitCount(); - Luo useita säikeitä, jotka kasvattavat käyntimääriä samanaikaisesti. (Tämä on toteutettu
Main-luokassa, sinun tulee selvittää, mitä siellä tapahtuu).
Vinkkejä:
- Käytä
ConcurrentHashMap-rakennetta, jossa avain on sivun URL ja arvo on käyntimäärä; - Käytä
compute()- taimerge()-metodeja laskureiden atomiseen päivittämiseenConcurrentHashMap-rakenteessa.
Sinun tulee toteuttaa metodit PageVisitCounterImpl-luokassa ja sen jälkeen suorittaa testit PageVisitCounterTest-luokassa.
Kun olet suorittanut tehtävän onnistuneesti, kaikkien testien tulisi mennä läpi.
Kun olet tehnyt kaiken oikein, voit kokeilla muokata riviä, jossa ConcurrentMap määritellään PageVisitCounterImpl-luokassa ja katsoa mitä tapahtuu.
Eli sinun tulee korvata tämä rivi tässä ConcurrentMap-toteutuksella.
Main.java
1private final ConcurrentMap<String, Integer> visitCounts = new ConcurrentHashMap<>();
Tässä esimerkissä käytetään tavallista Map-toteutusta
Main.java
1private final Map<String, Integer> visitCounts = new HashMap<>();
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.33
Haaste: Concurrentmap
Pyyhkäise näyttääksesi valikon
Tehtävä:
Monisäikeisen kävijälaskentajärjestelmän toteutus.
Kuvaus:
Toteutettava ohjelma, joka seuraa eri sivujen käyntikertojen määrää. Ohjelman tulee toimia oikein monisäikeisessä ympäristössä, jossa useat säikeet voivat samanaikaisesti kasvattaa eri sivujen käyntilaskureita.
Vaatimukset:
- Käytä
ConcurrentHashMap-rakennetta tallentaaksesi tiedot sivukäynneistä; - Toteuta metodi, joka kasvattaa tietyn sivun käyntimäärää.
incrementVisit(); - Toteuta metodi, joka palauttaa tietyn sivun nykyisen käyntimäärän.
getVisitCount(); - Luo useita säikeitä, jotka kasvattavat käyntimääriä samanaikaisesti. (Tämä on toteutettu
Main-luokassa, sinun tulee selvittää, mitä siellä tapahtuu).
Vinkkejä:
- Käytä
ConcurrentHashMap-rakennetta, jossa avain on sivun URL ja arvo on käyntimäärä; - Käytä
compute()- taimerge()-metodeja laskureiden atomiseen päivittämiseenConcurrentHashMap-rakenteessa.
Sinun tulee toteuttaa metodit PageVisitCounterImpl-luokassa ja sen jälkeen suorittaa testit PageVisitCounterTest-luokassa.
Kun olet suorittanut tehtävän onnistuneesti, kaikkien testien tulisi mennä läpi.
Kun olet tehnyt kaiken oikein, voit kokeilla muokata riviä, jossa ConcurrentMap määritellään PageVisitCounterImpl-luokassa ja katsoa mitä tapahtuu.
Eli sinun tulee korvata tämä rivi tässä ConcurrentMap-toteutuksella.
Main.java
1private final ConcurrentMap<String, Integer> visitCounts = new ConcurrentHashMap<>();
Tässä esimerkissä käytetään tavallista Map-toteutusta
Main.java
1private final Map<String, Integer> visitCounts = new HashMap<>();
Kiitos palautteestasi!