Многопоточность.Некорректное значение переменной a
Создаю 5 потоков,каждый увеличивает переменную на 5 тысяч.В итоге получается некорректный результат. Попробовал синхронизировать потоки,не помогло,почему ?
P.S Я знаю,что можно создать отдельный класс MyInteger с полем int value внутри и создать метод IncrementValue(),но хочу разобраться почему именно этот код не работает корректно.
Ответы (2 шт):
Автор решения: Олексій Моренець
→ Ссылка
synchronized (Solution.a.getClass())
Потому что см. предыдущий ответ ))
Я бы советовал создать ОДИН Runnable для всех ваших потоков и синхронизировать его метод run() или же в этом методе run() оставить как у вас секцию synchronized, но синхронизировать ее по this (ну или по классу, как я предложил).
