当前位置:嗨网首页>书籍在线阅读

39-案例实现

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

案例实现

根据如下步骤来实现本案例。

1.创建 Task 类,该类实现了 Runnable 接口。实现 run() 方法以在100s内连续输出信息到控制台中:

public class Task implements Runnable {
  @Override
  public void run() {
    Date start, end;
    start = new Date();
    do {
      System.out.printf("%s: tick\n",
                        Thread.currentThread().getName());
      end = new Date();
    } while (end.getTime() - start.getTime() < 100000);
  }
}

2.在 Main 类中实现 main() 方法,在该方法中创建10个线程,并由这10个线程分别执行10个任务。任务全部启动后,在主线程中用 join() 方法等待所有其他线程执行完成:

public class Main {
  public static void main(String[] args) {
    Thread[] threads = new Thread[10];
    for (int i=0; i<10; i++) {
      Task task=new Task();
      threads[i]=new Thread(task);
      threads[i].start();
    }
    for (int i=0; i<10; i++) {
      try {
        threads[i].join();
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
  }
}

3.开启控制台窗口,并执行JConsole应用。该应用内置在JDK-9安装目录下的bin目录中。