volatile 1、修饰成员变量 2、保证所有线程对变量访问的可见性 (告知程序任何对该变量的访问均需要从共享内存中获取,而对它的改变必须同步刷新回共享内存) sychroinized 1、修饰方法或是同步块 2、确保多个线程在同一个时刻,只能有一个线程处于方法或同步块中,保证了线程对变量访问的可见性和排他性。