В Java чтение и запись 32-битных или меньших величин гарантированно являются атомарными.
Под атомным мы подразумеваем, что каждое действие происходит за один шаг и не может быть прервано. Таким образом, когда у нас многопоточные приложения, операции чтения и записи являются поточно-ориентированными и не требуют синхронизации.
Например, следующий код является поточно-ориентированным:
public class ThreadSafe
{
private int x;
public void setX(int x)
{
this.x = x;
}
}