java内存可见性主要是对多线程的共享变量而言,其基本意思是每个线程有一个自己的工作内存,工作内存连接主内存,但线程之间的工作内存是不能直接看见的。常见的解决方案有以下四种:
synchronized 同步,简单粗暴,但不够高效
volatile 只保证了内存可见性,无法像synchronized一样保证操作的原子性
ReentrantLock 这个锁非常强大,是jdk1.5以后的新特性
AtomicInteger 保证了原子性,同上面一样出自于java.util.concurrent