В случае, если у вас есть много экземпляров класса, который имеет метод
void addStock(StockState newStock)
Ваш счетчик сломан в отношении безопасности потока, и поведение счетчика не гарантируется.Потоки, которые используют разные экземпляры класса, не будут блокировать друг друга.Чтобы исправить это, вы можете вместо этого синхронизировать сам экземпляр класса java.
synchronized(OuterClass.class)
Если вы используете блокировку только для счетчика, гораздо предпочтительнее использовать экземпляр
AtomicLong
Он не блокирует и работает лучше на порядок.