现在的位置: 首页 > 综合 > 正文

java thread volatile 理解

2014年12月13日 ⁄ 综合 ⁄ 共 312字 ⁄ 字号 评论关闭

 

   Java Thread有一个 volatile关键字,主要用来防止多线程访问公共变量,不能及时被其它线程正确访问, 而造成的不同步问题。

 

   比如ThreadA 和ThreadB 同时访问一个 int a = 0;  并且修改,

   可能会造成 ThreadA 修改a变量后,ThreadB访问a变量还是原来的值。

   因此要加上  volatile int a = 0; 

 

 

        多线程其实是cpu拿出一点资源单独去做另外一些事情,线程会把一些变量放到一个小寄存器中,

        这样访问数据的,不能马上更新同步到内存中去。因此加上volatile ,让所有的线程都访问同一个地方,这样数据都会同步。但性能下降了(MS都直接访问内存)。

 

  

【上篇】
【下篇】

抱歉!评论已关闭.