异步资源池

时间:2017-12-13 13:30:04

标签: java concurrency netty connection-pooling lock-free

我正在寻找一个具有完全非阻塞API的资源池,用于在客户端汇集Netty频道。 Netty的ChannelPool很好,但它强制从事件循环by design写入频道。我希望在频道已经可用时摆脱上下文切换,并可能节省一些未来/承诺分配。

由于Netty没有提供任何开箱即用的功能,我正在寻找通用池实现。我理想的API看起来像

interface Pool<T> {
   void acquire(Consumer<T> resourceConsumer);
   void release(T resource);
}

+所有关闭方法和资源工厂挂钩。资源准备就绪后,将立即调用消费者。当资源不可用时,可能会在提供的执行程序中触发使用者(因为我们不想过多地从release链接调用)。

有什么能给我这个吗?我知道Apache Commons池,HikariCP和其他一些专用池,但它们遵循阻塞borrowObjectFromPool模式。我更喜欢无锁的变体,但是让这些实现细节保持到项目的成熟度。

0 个答案:

没有答案