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