Java小实验之十一(多线程)


public class Tst11 implements Runnable {

private int x;
private int y;

/**
* @param args
*/
public static void main(String[] args) {
Tst11 t = new Tst11();
new Thread(t).start();
new Thread(t).start();
}

public void run() {
for (;;) {
x++;
y++;
System.out.println("x=" + x + ",y=" + y);
}

}

}



以上代码的运行结果是?
A 编译不通过
B 输出行类似 x=1,y=1 , 总是重复一次。
C 输出行类似 x=1,y=1 , 递增,每行不重复。
D 输出行类似 x=38773,y=38984 , x和y的值不一定相等

答案:D

分析:本地考察对 多线程的概念理解。 Java 中的多线程,指的是对 Java 的同一对象的同一代码段,有两个线程在竞逐执行。

代码11行、12行,创建了两个线程。
由于是两个线程 抢占式、发式地执行,故每个线程在执行 run 中的代码时,很可能中途中断执行,让出CPU给另一个线程。所以导致 x 和 y 的值不能同步增加。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值