0
点赞
收藏
分享

微信扫一扫

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 的值不能同步增加。


举报

相关推荐

0 条评论