Встречается на собеседованиях • сегодня

Как посчитать записи обработанные несколькими потоками

Для подсчёта записей, обработанных несколькими потоками, можно использовать AtomicInteger или синхронизированные методы.

Пример с AtomicInteger:

java
AtomicInteger counter = new AtomicInteger(0);

Runnable task = () -> {
    // Обработка записи
    counter.incrementAndGet();
};

ExecutorService executor = Executors.newFixedThreadPool(4);
for (int i = 0; i < 100; i++) {
executor.submit(task);
}
executor.shutdown();
executor.awaitTermination(1, TimeUnit.MINUTES);

System.out.println("Обработано записей: " + counter.get());

text

**Вариант с synchronized:**  
```java
int count = 0;

synchronized void increment() {
    count++;
}

Runnable task = () -> {
    increment();
};

AtomicInteger предпочтительнее, так как он работает быстрее за счёт CAS (Compare-And-Swap).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы