A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 绿影 于 2011-11-12 15:50 编辑

不知道大家注意到没有,多线程程序在编译时,程序中有几个线程就会生成几个.class文件,而且文件名都是带编号的。我发现这个说法并不完全正确。今天碰到一个程序执行时有多个线程但是并不是每个线程都会产生一个.class文件。代码如下:
  1. import java.util.*;
  2. public class TraditionalTimer {
  3. @SuppressWarnings("deprecation")
  4. public static void main(String[] args) throws Exception {
  5.          new Timer().schedule(
  6.            new TimerTask(){
  7.                         public void run() {
  8.                         System.out.println(new Date().getSeconds());
  9.                         System.out.println("bombing0"+"|"+Thread.currentThread().getName());//添加打印当前线程名称
  10.                         //定时器中安装定时器
  11.                         new Timer().schedule(
  12.                                         new TimerTask(){
  13.                                                 public void run(){
  14.                                                         System.out.println(new Date().getSeconds());
  15.                                                         System.out.println("bombing1"+"|"+Thread.currentThread().getName());
  16.                                                 }
  17.                                           }
  18.                                    ,3000
  19. //                               ,4000
  20.                                );
  21.                         }}
  22.           ,1000//延迟多久后执行
  23.           ,2000//以多久的频率反复循环执行,这个参数可以没有,那就仅执行一次
  24.            );
  25. }
  26. }
复制代码
运行效果和产生的.class文件如下:
我很困惑这是为什么呢?

评分

参与人数 1技术分 +1 收起 理由
杨玉揆 + 1

查看全部评分

2 个回复

倒序浏览
绿影 黑马帝 2011-11-12 01:42:37
沙发
本帖最后由 绿影 于 2011-11-12 01:45 编辑

图片没发上,重新发一下。http://bbs.itheima.com/forum.php?mod=attachment&aid=MTk0fGUzNzg3OWRjMGQ3YThiMzBmMWFlMDlkNGE2OGVlMGMxfDE3MjY3MzY0MDQ%3D&request=yes&_f=.png

2.png (222.63 KB, 下载次数: 21)

真相

真相
回复 使用道具 举报
哦,还真没注意到
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马