volatile的特性:
1.可见性:可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值 :就是创业公司股东每次采购东西(副表)前都要问财务一下公司还有多少钱,财务:还有10万块,然后就去采购东西,采购完之后必须第一时间告诉财务报销(刷到主存),这样就可以保证每次采购后,每个股东都知道公司还有多少钱(可见性)。
2没有原子性:大白话:就是创业公司股东每次采购东西(副表)前都要问财务一下公司还有多少钱,财务:还有10万块,然后就去采购东西,具体采购多少钱要股东回来财务才知道(刷到主存),假如一个股东还没有采购回来就有另一个股东又去采购东西了,问财务还有多少钱,财务:还有10万,假如两股东都采购了3万,这样就会导致数据不安全
synchronized的特性
1.可见性:
2.原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行 大白话:财务跟各个股东说,你们每次只能一个人出去采购,采购完报销了,其他股东再去购买(阻塞),不要中间有其他人也去采购。