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

26-案例实现

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

案例实现

根据以下步骤完成本案例。

1.创建一个名为 DataSourcesLoader 的类,并实现 Runnable 接口:

public class DataSourcesLoader implements Runnable {

2.实现 run() 方法。向控制台输出执行开始的信息,休眠4s,然后再输出一条执行结束的信息:

@Override
public void run() {
  System.out.printf("Beginning data sources loading: %s\n", 
                    new Date());
  try {
    TimeUnit.SECONDS.sleep(4);
  } catch (InterruptedException e) { 
    e.printStackTrace();
  }
  System.out.printf("Data sources loading has finished: %s\n", 
                    new Date());
}

3.创建一个名为 NetworkConnectionsLoader 的类,并实现 Runnable 接口。实现 run() 方法,它与 DataSourcesLoaderrun() 方法基本一致,但它的休眠时间为6s。

4.实现应用程序入口,创建包含 main() 方法的 Main 类:

public class Main {
  public static void main(String[] args) {

5.创建一个 DataSourcesLoader 类的对象,并创建一个 Thread 对象来执行该任务:

DataSourcesLoader dsLoader = new DataSourcesLoader();
Thread thread1 = new Thread(dsLoader,"DataSourceThread");

6.创建一个 NetworkConnectionsLoader 类的对象,并创建一个 Thread 对象来执行该任务:

NetworkConnectionsLoader ncLoader = new NetworkConnectionsLoader();
Thread thread2 = new Thread(ncLoader,"NetworkConnectionLoader");

7.调用两个线程对象的 start() 方法:

thread1.start();
thread2.start();

8.用 join() 方法来等待两个线程执行结束。该方法会抛出 InterruptedException 异常,因此需要包含捕获代码:

try {
  thread1.join();
  thread2.join();
} catch (InterruptedException e) {
  e.printStackTrace();
}

9.向控制台输出程序结束信息:

System.out.printf("Main: Configuration has been loaded: %s\n",
                  new Date());

10.运行案例并查看结果。