Herausforderung: Concurrentmap
Aufgabe:
Implementierung eines multithreaded Systems zur Erfassung von Seitenaufrufen.
Beschreibung:
Es soll ein Programm erstellt werden, das die Anzahl der Aufrufe verschiedener Seiten einer Website erfasst. Das Programm muss in einer multithreaded Umgebung korrekt funktionieren, in der mehrere Threads gleichzeitig die Aufrufzähler für verschiedene Seiten erhöhen können.
Anforderungen:
- Verwendung von
ConcurrentHashMapzur Speicherung der Daten über Seitenaufrufe; - Implementierung einer Methode, die den Aufrufzähler für eine bestimmte Seite erhöht.
incrementVisit(); - Implementierung einer Methode, die den aktuellen Aufrufzähler für eine bestimmte Seite zurückgibt.
getVisitCount(); - Erstellung von mehreren Threads, die die Aufrufzähler gleichzeitig erhöhen. (Dies wird in der Klasse
Mainimplementiert, analysieren Sie, was dort geschieht).
Hinweise:
- Verwendung von
ConcurrentHashMapzur Speicherung der Daten, wobei der Schlüssel die URL der Seite und der Wert der Aufrufzähler ist; - Nutzung der Methoden
compute()odermerge(), um Zähler atomar zu aktualisieren in derConcurrentHashMap.
Sie müssen die Methoden in der Klasse PageVisitCounterImpl vervollständigen und anschließend die Tests in der Klasse PageVisitCounterTest ausführen.
Nachdem Sie die Aufgabe erfolgreich abgeschlossen haben, sollten alle Tests bestehen.
Nachdem Sie alles korrekt erledigt haben, können Sie versuchen, die Zeile zu bearbeiten, in der ConcurrentMap in der Klasse PageVisitCounterImpl deklariert wird, und beobachten, was passiert.
Das heißt, Sie müssen diese Zeile hier durch die Implementierung von ConcurrentMap ersetzen.
Main.java
1private final ConcurrentMap<String, Integer> visitCounts = new ConcurrentHashMap<>();
In diesem Fall mit der Implementierung des üblichen Map
Main.java
1private final Map<String, Integer> visitCounts = new HashMap<>();
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 3.33
Herausforderung: Concurrentmap
Swipe um das Menü anzuzeigen
Aufgabe:
Implementierung eines multithreaded Systems zur Erfassung von Seitenaufrufen.
Beschreibung:
Es soll ein Programm erstellt werden, das die Anzahl der Aufrufe verschiedener Seiten einer Website erfasst. Das Programm muss in einer multithreaded Umgebung korrekt funktionieren, in der mehrere Threads gleichzeitig die Aufrufzähler für verschiedene Seiten erhöhen können.
Anforderungen:
- Verwendung von
ConcurrentHashMapzur Speicherung der Daten über Seitenaufrufe; - Implementierung einer Methode, die den Aufrufzähler für eine bestimmte Seite erhöht.
incrementVisit(); - Implementierung einer Methode, die den aktuellen Aufrufzähler für eine bestimmte Seite zurückgibt.
getVisitCount(); - Erstellung von mehreren Threads, die die Aufrufzähler gleichzeitig erhöhen. (Dies wird in der Klasse
Mainimplementiert, analysieren Sie, was dort geschieht).
Hinweise:
- Verwendung von
ConcurrentHashMapzur Speicherung der Daten, wobei der Schlüssel die URL der Seite und der Wert der Aufrufzähler ist; - Nutzung der Methoden
compute()odermerge(), um Zähler atomar zu aktualisieren in derConcurrentHashMap.
Sie müssen die Methoden in der Klasse PageVisitCounterImpl vervollständigen und anschließend die Tests in der Klasse PageVisitCounterTest ausführen.
Nachdem Sie die Aufgabe erfolgreich abgeschlossen haben, sollten alle Tests bestehen.
Nachdem Sie alles korrekt erledigt haben, können Sie versuchen, die Zeile zu bearbeiten, in der ConcurrentMap in der Klasse PageVisitCounterImpl deklariert wird, und beobachten, was passiert.
Das heißt, Sie müssen diese Zeile hier durch die Implementierung von ConcurrentMap ersetzen.
Main.java
1private final ConcurrentMap<String, Integer> visitCounts = new ConcurrentHashMap<>();
In diesem Fall mit der Implementierung des üblichen Map
Main.java
1private final Map<String, Integer> visitCounts = new HashMap<>();
Danke für Ihr Feedback!