java程序启动后线程介绍_关于线程的java程序的详细运行过程

哪位高人能详细的说出一下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

两者的结果不一致啊!

怎么会这样啊???

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值