六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 40|回复: 0

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

[复制链接]

升级  41.33%

96

主题

96

主题

96

主题

举人

Rank: 3Rank: 3

积分
324
 楼主| 发表于 2013-1-26 14:03:52 | 显示全部楼层 |阅读模式
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 的值不能同步增加。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表