曾经以为,多线程可以访问静态变量,来实现多线程之间数据的共享。
事实上,虽然多线程可以访问静态变量,但是,会有延迟,可能访问的并不是最新的值。
要想在多个线程之间共享数据,并能及时访问到最新值,需要用Violate关键字。
以下是关于Volatile关键字的说明
volatile 关键字指示一个字段可以由多个同时执行的线程修改。声明为 volatile 的字段不受编译器优化(假定由单个线程访问)的限制。这样可以确保该字段在任何时间呈现的都是最新的值。
volatile 修饰符通常用于由多个线程访问但不使用 lock 语句对访问进行序列化的字段。