Why is AtomicInteger needed if writes and reads to int variables are atomic? Why is AtomicInteger needed if writes and reads to int variables are atomic? multithreading multithreading