Java 并发对象池:Vibur Object Pool
jopen
11年前
Vibur Object Pool 是个通用并发 Java 对象池,提供验证和非验证池。 它是完全是用标准Java concurrency utilities创建,不需要用到任何同步块或者方法,也不需要任何外部依赖。这对于高消耗的 Java 对象创建,类似数据库连接或者其他 socket 连接远程主机的池或者缓存池是个非常棒的选择。
HolderValidatingPoolService<SomeClass> pool = new ConcurrentHolderLinkedPool<SomeClass>( new SomeClassFactory(), 10, 60, false); //... Holder<SomeClass> hObj = null; try { hObj = pool.tryTake(10, TimeUnit.SECONDS); if (hObj == null) // i.e. no any object was available in the pool for 10 seconds return; // do some work and use hObj.value() here } finally { if (hObj != null) pool.restore(hObj, true); }