#497 CountDownLatch и потерянные инкременты

Компании:
Т-Банк
Темы:
JavaМногопоточностьКод ревью

Отработает ли CountDownLatch нужное количество раз?

public class Increment {
    private static int counter1 = 0;
    private static int counter2 = 0;
    Lock lock = new ReentranLock();

    public static void main(String[] args) throws InterruptedException {
        int exercisesCount = 100_000;
        CountDownLatch latch = new CountDownLatch(exercisesCount);
        ExecutorService executor = Executors.newFixedThreadPool(100);

        for (int i = 0; i < exercisesCount; i++) {
            executor.submit(() -> {
                counter1++;
                counter2++;
                latch.countDown();
            });
        }

        latch.await();

        //сколько будет выведено?
        System.out.println(counter1);
        System.out.println(counter2);
        System.exit(0);
    }
}

Разбор вопроса

Ментор
Ответь как на реальном собеседовании. Я задам уточняющие вопросы, а затем сравню твой ответ с эталонным и покажу точность в %.
Войди, чтобы начать диалог Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти