Зачем нужны atomic, если то же самое можно получить с synchronized? В чем разница? Когда нужно использовать одно, когда другое?