Desafío: Concurrentmap
Tarea:
Implementación de un sistema multihilo para el registro de visitas a sitios web.
Descripción:
Es necesario crear un programa para llevar el registro del número de visitas a diferentes páginas del sitio. El programa debe funcionar correctamente en un entorno multihilo, donde varios hilos pueden incrementar simultáneamente los contadores de visitas para diferentes páginas.
Requisitos:
- Utilizar
ConcurrentHashMappara almacenar los datos sobre las visitas a páginas; - Implementar un método que incremente el contador de visitas para una página dada.
incrementVisit(); - Implementar un método que devuelva el contador de visitas actual para una página dada.
getVisitCount(); - Crear múltiples hilos que incrementen los contadores de visitas simultáneamente. (Esto se implementa en la clase
Main, es necesario analizar su funcionamiento).
Sugerencias:
- Utilizar
ConcurrentHashMappara almacenar los datos donde la clave es la URL de la página y el valor es el contador de visitas; - Utilizar los métodos
compute()omerge()para actualizar los contadores atómicamente enConcurrentHashMap.
Es necesario completar los métodos en la clase PageVisitCounterImpl, y luego ejecutar las pruebas en la clase PageVisitCounterTest.
Después de completar la tarea correctamente, todas las pruebas deberían pasar.
Después de realizar todo correctamente, se puede intentar editar la línea donde se declara ConcurrentMap en la clase PageVisitCounterImpl y observar qué sucede.
Es decir, es necesario reemplazar esta línea aquí con la implementación de ConcurrentMap.
Main.java
1private final ConcurrentMap<String, Integer> visitCounts = new ConcurrentHashMap<>();
En este caso, con la implementación del habitual Map
Main.java
1private final Map<String, Integer> visitCounts = new HashMap<>();
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
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
Desafío: Concurrentmap
Desliza para mostrar el menú
Tarea:
Implementación de un sistema multihilo para el registro de visitas a sitios web.
Descripción:
Es necesario crear un programa para llevar el registro del número de visitas a diferentes páginas del sitio. El programa debe funcionar correctamente en un entorno multihilo, donde varios hilos pueden incrementar simultáneamente los contadores de visitas para diferentes páginas.
Requisitos:
- Utilizar
ConcurrentHashMappara almacenar los datos sobre las visitas a páginas; - Implementar un método que incremente el contador de visitas para una página dada.
incrementVisit(); - Implementar un método que devuelva el contador de visitas actual para una página dada.
getVisitCount(); - Crear múltiples hilos que incrementen los contadores de visitas simultáneamente. (Esto se implementa en la clase
Main, es necesario analizar su funcionamiento).
Sugerencias:
- Utilizar
ConcurrentHashMappara almacenar los datos donde la clave es la URL de la página y el valor es el contador de visitas; - Utilizar los métodos
compute()omerge()para actualizar los contadores atómicamente enConcurrentHashMap.
Es necesario completar los métodos en la clase PageVisitCounterImpl, y luego ejecutar las pruebas en la clase PageVisitCounterTest.
Después de completar la tarea correctamente, todas las pruebas deberían pasar.
Después de realizar todo correctamente, se puede intentar editar la línea donde se declara ConcurrentMap en la clase PageVisitCounterImpl y observar qué sucede.
Es decir, es necesario reemplazar esta línea aquí con la implementación de ConcurrentMap.
Main.java
1private final ConcurrentMap<String, Integer> visitCounts = new ConcurrentHashMap<>();
En este caso, con la implementación del habitual Map
Main.java
1private final Map<String, Integer> visitCounts = new HashMap<>();
¡Gracias por tus comentarios!