volatile可以使得在多处理器环境下保证了共享变量的可见性,那么到底什么是可见性呢?不知道大家有没有思考过这个问题
在单线程的环境下,如果向一个变量先写入一个值,然后在没有写干涉的情况下读取这个变量的值,那这个时候读取到的这个变量的值应该是之前写入的那个值。这本来是一个很正常的事情。但是在多线程环境下,读和写发生在不同的线程中的时候,可能会出现:读线程不能及时的读
取到其他线程写入的最新的值。这就是所谓的可见性
为了实现跨线程写入的内存可见性,必须使用到一些机制来实现。而volatile就是这样一种机制