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

24-案例实现

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

案例实现

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

1.创建一个名为 DBConnectionOK 的类:

public class DBConnectionOK {

2.声明一个私有的构造器。打印执行了构造器的线程的名字:

private DBConnectionOK() {
  System.out.printf("%s: Connection created.\n",
                    Thread.currentThread().getName());
}

3.在 DBConnectionOK 类中声明一个私有的静态类,并命名为 LazyDBConnectionOK 。它有一个 private static final DBConnectionOK 实例,命名为 INSTANCE

private static class LazyDBConnection {
  private static final DBConnectionOK INSTANCE = new
                                           DBConnectionOK();
}

4.实现 getConnection() 方法。它没有参数并返回一个 DBConnectionOK 对象,这也就是 INSTANCE

public static DBConnectionOK getConnection() {
  return LazyDBConnection.INSTANCE;
}

5.创建 Task 类并实现 Runnable 接口。实现 run() 方法,调用 DBConnectionOK 类的 getConnection() 方法:

public class Task implements Runnable {
  @Override
  public void run() {
    System.out.printf("%s: Getting the connection...\n",
                      Thread.currentThread().getName());
    DBConnectionOK connection=DBConnectionOK.getConnection();
    System.out.printf("%s: End\n",
                      Thread.currentThread().getName());
  }
}

6.实现本案例的主类,创建 Main 并添加 main() 方法:

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

7.创建20个 Task 对象和20个线程来执行它们:

  for (int i=0; i<20; i++){
    Task task=new Task();
    Thread thread=new Thread(task);
    thread.start();
  }
}