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();
}
}