程序员
董欣欣的个人博客

java 线程方法内变量为安全

java中,如果方法内部有变量,则不存在非线程安全问题,因为方法内变量不是共有的变量,访问的是不同的地址,即自己运行自己的。下面用例子说明。

 

 

 

运行结果:

a set over!
b set over
a num= 100
b num= 200

虽然传递是一个类,但是这样相当于addI方法执行两遍,num为每个线程私有所以是不会产生非线程安全问题!

如果num不是在方法内部,而是在方法外部,访问即为一个地址下的变量,则会产生非线程安全问题,下面看另一个例子。

 

 

 

运行结果:

a set over!
b set over
b num= 200
a num= 200

因为num为公共的变量,所以会产生非线程安全。

未经允许不得转载:董不董 - 董欣欣的个人博客 » java 线程方法内变量为安全
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

www.dongxinxin.cn 技术博客

联系我关于我