Завдання: ConcurrentMap
Завдання:
Реалізація багатопотокової системи обліку відвідувань сайту.
Опис:
Необхідно створити програму для обліку кількості відвідувань різних сторінок сайту. Програма повинна коректно працювати у багатопотоковому середовищі, де декілька потоків можуть одночасно збільшувати лічильники відвідувань для різних сторінок.
Вимоги:
- Використання
ConcurrentHashMapдля зберігання даних про відвідування сторінок; - Реалізація методу, який збільшує лічильник відвідувань для заданої сторінки.
incrementVisit(); - Реалізація методу, який повертає поточний лічильник відвідувань для заданої сторінки.
getVisitCount(); - Створення декількох потоків, які будуть одночасно збільшувати лічильники відвідувань. (Це реалізовано у класі
Main, необхідно розібратися, що там відбувається).
Підказки:
- Використання
ConcurrentHashMapдля зберігання даних, де ключем є URL сторінки, а значенням — лічильник відвідувань; - Використання методів
compute()абоmerge()для атомарного оновлення лічильників уConcurrentHashMap.
Потрібно реалізувати методи у класі PageVisitCounterImpl, а потім запустити тести у класі PageVisitCounterTest.
Після успішного виконання завдання всі тести мають пройти.
Після того як усе зроблено правильно, можна спробувати змінити рядок, де оголошується ConcurrentMap у класі PageVisitCounterImpl, і подивитися, що станеться.
Тобто потрібно замінити цей рядок тут на реалізацію ConcurrentMap.
Main.java
1private final ConcurrentMap<String, Integer> visitCounts = new ConcurrentHashMap<>();
У цьому завданні використовується реалізація звичайного Map
Main.java
1private final Map<String, Integer> visitCounts = new HashMap<>();
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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
Завдання: ConcurrentMap
Свайпніть щоб показати меню
Завдання:
Реалізація багатопотокової системи обліку відвідувань сайту.
Опис:
Необхідно створити програму для обліку кількості відвідувань різних сторінок сайту. Програма повинна коректно працювати у багатопотоковому середовищі, де декілька потоків можуть одночасно збільшувати лічильники відвідувань для різних сторінок.
Вимоги:
- Використання
ConcurrentHashMapдля зберігання даних про відвідування сторінок; - Реалізація методу, який збільшує лічильник відвідувань для заданої сторінки.
incrementVisit(); - Реалізація методу, який повертає поточний лічильник відвідувань для заданої сторінки.
getVisitCount(); - Створення декількох потоків, які будуть одночасно збільшувати лічильники відвідувань. (Це реалізовано у класі
Main, необхідно розібратися, що там відбувається).
Підказки:
- Використання
ConcurrentHashMapдля зберігання даних, де ключем є URL сторінки, а значенням — лічильник відвідувань; - Використання методів
compute()абоmerge()для атомарного оновлення лічильників уConcurrentHashMap.
Потрібно реалізувати методи у класі PageVisitCounterImpl, а потім запустити тести у класі PageVisitCounterTest.
Після успішного виконання завдання всі тести мають пройти.
Після того як усе зроблено правильно, можна спробувати змінити рядок, де оголошується ConcurrentMap у класі PageVisitCounterImpl, і подивитися, що станеться.
Тобто потрібно замінити цей рядок тут на реалізацію ConcurrentMap.
Main.java
1private final ConcurrentMap<String, Integer> visitCounts = new ConcurrentHashMap<>();
У цьому завданні використовується реалізація звичайного Map
Main.java
1private final Map<String, Integer> visitCounts = new HashMap<>();
Дякуємо за ваш відгук!