再想想那个奇怪的面试题

problc 2010-06-04 11:36:19
之前看了个帖子
http://topic.csdn.net/u/20100601/13/baf5eb8a-3694-4d58-9e1b-b2b20f00b8cb.html
if(x>4){
System.out.println("test1");
}else if(x>9){
System.out.println("test2");
}else{
System.out.pringln("test3");
}
问x=?时,输出test2

当时想无论如何也不可能输出test2
今天再想想,在多线程环境下,还是有可能的。
比如判断x>4时,x=2,判断完之后,在else if之前,x值变成了10。
不过由于if判断的操作太简单,速度很快,发生输出test2的概率还是很小很小。
...全文
170 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xx314327475 2010-06-05
  • 打赏
  • 举报
回复
有可能 有可能 x>4 线程休眠 x>8线程激活状态

顿悟了 于是我又回来了
xx314327475 2010-06-05
  • 打赏
  • 举报
回复
很抽象,相当抽象,我决定不思考

以免失眠
任付江 2010-06-05
  • 打赏
  • 举报
回复
什么公司的面试题啊?
INTRUSTION 2010-06-05
  • 打赏
  • 举报
回复
多线程 也不能写成这样子啊。。
lacus87 2010-06-05
  • 打赏
  • 举报
回复
多线程也不会的,你里面是一个判断分支,也就是说任何线程只能走三条语句其中的一条,就算你判断test1后被其他线程占用改变了X再回来,你还是要继续执行test1的
rwpeng86 2010-06-05
  • 打赏
  • 举报
回复
真纠结!前几天刚思考过这个问题。
24K純帥 2010-06-05
  • 打赏
  • 举报
回复
是嘛,怎么可能存在test2呢。。
木桶爸爸 2010-06-05
  • 打赏
  • 举报
回复
这个题有点傻,但好像也只能这么回答了。
I_am_studying 2010-06-05
  • 打赏
  • 举报
回复
学习一下
BigKing911 2010-06-05
  • 打赏
  • 举报
回复
这个问题还真是纠结呀!
  • 打赏
  • 举报
回复
哎,结果我回帖一分也没给啊
  • 打赏
  • 举报
回复
不管是多线程,还是单线程的情况下都不会输出 test2
hucong524579465 2010-06-05
  • 打赏
  • 举报
回复
谁知道答案。。
南南北北 2010-06-05
  • 打赏
  • 举报
回复
多线程不是你想的那样。

除非这个x是类的成员变量。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧