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; 看截图最后一个结果:
|