哪位高人能详细的说出一下java程序的运行过程如果回答的能让我明白的话,就给他(/她)全部积分publicclassTTimplementsRunnable{intb=100;publicsynchronizedvoidm1()throwsException{...
哪位高人能详细的说出一下java程序的运行过程
如果回答的能让我明白的话,就给他(/她)全部积分
public class TT implements Runnable {
int b = 100;
public synchronized void m1() throws Exception {
b = 1000;
Thread.sleep(5000);
System.out.println("b = " + b);
}
public synchronized void m2() throws Exception {
Thread.sleep(2500);
b = 2000;
System.out.println("m2:" + b);
}
public void run(){
try {
m1();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
TT tt = new TT();
Thread t = new Thread(tt);
t.start();
tt.m2();
System.out.println(tt.b);
}
}
是哦,老师是说过执行顺序跟线程的时间片有关
还有个奇怪的地方!!!!!!!!
程序在dos下使用javac和java命令运行时是这样的(不能上传图片。。。):
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>cd \
C:\>java TT
m2:2000
2000
b = 1000
C:\>
而在eclipse下运行结果却是这样的:
m2:2000
1000
b = 1000
两者的结果不一致啊!
怎么会这样啊???
展开