Sfida: ConcurrentMap
Compito:
Realizzazione di un sistema multithread per la registrazione delle visite al sito.
Descrizione:
È necessario creare un programma per tenere traccia del numero di visite alle diverse pagine del sito. Il programma deve funzionare correttamente in un ambiente multithread, dove più thread possono aumentare contemporaneamente i contatori delle visite per diverse pagine.
Requisiti:
- Utilizzare
ConcurrentHashMapper memorizzare i dati sulle visite alle pagine; - Implementare un metodo che incrementa il conteggio delle visite per una determinata pagina.
incrementVisit(); - Implementare un metodo che restituisce il conteggio attuale delle visite per una determinata pagina.
getVisitCount(); - Creare più thread che incrementano contemporaneamente i conteggi delle visite. (Questo è implementato nella classe
Main, è necessario capire cosa succede lì).
Suggerimenti:
- Utilizzare
ConcurrentHashMapper memorizzare i dati dove la chiave è l'URL della pagina e il valore è il conteggio delle visite; - Utilizzare i metodi
compute()omerge()per aggiornare atomicamente i contatori inConcurrentHashMap.
È necessario completare i metodi nella classe PageVisitCounterImpl, e poi eseguire i test nella classe PageVisitCounterTest.
Dopo aver completato correttamente il compito, tutti i test dovrebbero superare.
Dopo aver eseguito tutto correttamente, puoi provare a modificare la riga in cui viene dichiarato ConcurrentMap nella classe PageVisitCounterImpl e vedere cosa succede.
Cioè, è necessario sostituire questa riga qui con l'implementazione di ConcurrentMap.
Main.java
1private final ConcurrentMap<String, Integer> visitCounts = new ConcurrentHashMap<>();
In questo caso, con l'implementazione del consueto Map
Main.java
1private final Map<String, Integer> visitCounts = new HashMap<>();
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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?
Awesome!
Completion rate improved to 3.33
Sfida: ConcurrentMap
Scorri per mostrare il menu
Compito:
Realizzazione di un sistema multithread per la registrazione delle visite al sito.
Descrizione:
È necessario creare un programma per tenere traccia del numero di visite alle diverse pagine del sito. Il programma deve funzionare correttamente in un ambiente multithread, dove più thread possono aumentare contemporaneamente i contatori delle visite per diverse pagine.
Requisiti:
- Utilizzare
ConcurrentHashMapper memorizzare i dati sulle visite alle pagine; - Implementare un metodo che incrementa il conteggio delle visite per una determinata pagina.
incrementVisit(); - Implementare un metodo che restituisce il conteggio attuale delle visite per una determinata pagina.
getVisitCount(); - Creare più thread che incrementano contemporaneamente i conteggi delle visite. (Questo è implementato nella classe
Main, è necessario capire cosa succede lì).
Suggerimenti:
- Utilizzare
ConcurrentHashMapper memorizzare i dati dove la chiave è l'URL della pagina e il valore è il conteggio delle visite; - Utilizzare i metodi
compute()omerge()per aggiornare atomicamente i contatori inConcurrentHashMap.
È necessario completare i metodi nella classe PageVisitCounterImpl, e poi eseguire i test nella classe PageVisitCounterTest.
Dopo aver completato correttamente il compito, tutti i test dovrebbero superare.
Dopo aver eseguito tutto correttamente, puoi provare a modificare la riga in cui viene dichiarato ConcurrentMap nella classe PageVisitCounterImpl e vedere cosa succede.
Cioè, è necessario sostituire questa riga qui con l'implementazione di ConcurrentMap.
Main.java
1private final ConcurrentMap<String, Integer> visitCounts = new ConcurrentHashMap<>();
In questo caso, con l'implementazione del consueto Map
Main.java
1private final Map<String, Integer> visitCounts = new HashMap<>();
Grazie per i tuoi commenti!