25-结果分析
结果分析
本案例的关键是 getConnection()
方法和 private static class LazyDBConnection
实例。当第一个线程调用 getConnection()
方法时, LazyDBConnection
通过 DBConnection
的构造器初始化了 INSTANCE
对象,然后由 getConnection()
方法返回。其余线程在调用 getConnection()方
法时,已创建了 INSTANCE
,所以所有线程都使用这个只创建一次的对象。
虽然运行程序能够看到这20个任务的启动和结束信息,但是创建信息只有一个。