有间隔的两个System.currentTimeMillis();方法为什么打印的结果总是一样?

yqsshr 2009-08-07 05:00:57

//开始计时
long t1 = System.currentTimeMillis();
System.out.println(t1);
String kind = request.getParameter("resourcetype"); //选择查询的类型
for(Iterator iter = allResource.iterator(); iter.hasNext();) {
item = (ResourceItemBean)iter.next();
for(int j=0; j < keytoken.size(); j++) {//遍历每个token
String token = (String)keytoken.get(j);
//和关键字相似的bean放入result中
if(item.getKeywords().indexOf(token) != -1) {
if(kind.equals("doc")) { //如果选择的是文档单选框,就将文档资源加入item里
if(item.getKind().equalsIgnoreCase("doc") || item.getKind().equalsIgnoreCase("ppt") || item.getKind().equalsIgnoreCase("pdf")
|| item.getKind().equalsIgnoreCase("xls") || item.getKind().equalsIgnoreCase("txt")) {
result.add(item);
}
} else if(kind.equals("pic")) { //图片
if(item.getKind().equalsIgnoreCase("png") || item.getKind().equalsIgnoreCase("gif") || item.getKind().equalsIgnoreCase("jpeg")
|| item.getKind().equalsIgnoreCase("bmp") || item.getKind().equalsIgnoreCase("jpg")) {
result.add(item);
}
} else if(kind.equals("audio")) { //音频
if(item.getKind().equalsIgnoreCase("mp3") || item.getKind().equalsIgnoreCase("wma") || item.getKind().equalsIgnoreCase("wav")
|| item.getKind().equalsIgnoreCase("midi") || item.getKind().equalsIgnoreCase("mid")) {
result.add(item);
}
} else if(kind.equals("video")) { //视频
if(item.getKind().equalsIgnoreCase("avi") || item.getKind().equalsIgnoreCase("wmv") || item.getKind().equalsIgnoreCase("swf")
|| item.getKind().equalsIgnoreCase("rm") || item.getKind().equalsIgnoreCase("asf") || item.getKind().equalsIgnoreCase("rmvb")
|| item.getKind().equalsIgnoreCase("mpeg") || item.getKind().equalsIgnoreCase("mpg")) {
result.add(item);
}
} else { //如果选择的是全部单选框或其它不知道的类型,就把他们全加入result
result.add(item);
}
}
}
}
if(result.isEmpty()) {
forwardStr = "noResult";
} else {
long t2 = System.currentTimeMillis();
System.out.println(t2);
time = Double.toString((t2 - t1) / 1000.0);
System.out.println(time);
//花费的时间
request.setAttribute("executeTime", time);

。。。。。


在控制台上打印的t1和t2为什么总是一样的啊??如上述程序的一次打印如下:
1249635205203
1249635205203
0.0
谁知道是怎么回事吗?
...全文
714 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yqsshr 2009-08-07
  • 打赏
  • 举报
回复
呵呵,知道什么原因了。。执行时间小于1ms了。。
谢谢各位提醒,结贴了!!
Johnson_Hong 2009-08-07
  • 打赏
  • 举报
回复
执行时间小于1ms了

Iterator iter = allResource.iterator(); iter.hasNext();
把allResource搞成50000条试一下
  • 打赏
  • 举报
回复
建议楼主把这段代码重构一下哦
xiechunmei13 2009-08-07
  • 打赏
  • 举报
回复
程序运行速度太快间隔显示不出来吧?
你试试让它睡个半分钟看看。
FlashDragon 2009-08-07
  • 打赏
  • 举报
回复
System.currentTimeMillis()取得值单位是毫秒,如果这两个时间之间处理小于1毫秒的话,当然执行时间为0。
琴岛橙子 2009-08-07
  • 打赏
  • 举报
回复
t1 t2之间运行时间太短吧,可能是ms us级的,加个thread 测试下,应该有间隔。
yqsshr 2009-08-07
  • 打赏
  • 举报
回复
但我中间部分都能正确运行了的啊 。。
closewbq 2009-08-07
  • 打赏
  • 举报
回复
中间部分可能没走!

62,614

社区成员

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

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