黑马程序员技术交流社区
标题: int类型加法运算,在内存中怎样运行的? [打印本页]
作者: vtming 时间: 2014-3-15 20:56
标题: int类型加法运算,在内存中怎样运行的?
package com.test1;
public classDthread {
public static int a=0;
public static void main(String[] args) {
// TODO Auto-generated method stub
Test1t1 = newTest1();
new Thread(t1).start();
new Thread(t1).start();
}
}
class Test1 implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
Dthread.a = Dthread.a + 1;
System.out.println(Thread.currentThread().getName()+ "A="+ Dthread.a);
}
}
此程序10到100次会产生一个意外结果结果:
Thread-1A=1
Thread-0A=1
我无法理解这个结果怎样产生的。
有没有人能解释下面这个加法在内存是怎么运行的??
Dthread.a = Dthread.a + 1;
看截图最后一个结果:
作者: 小周务商 时间: 2014-3-16 11:14
这个是线程安全问题。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |