首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在分离线程中使用ObjectPool?

如何在分离线程中使用ObjectPool?
EN

Stack Overflow用户
提问于 2014-11-10 01:47:41
回答 1查看 60关注 0票数 0

对象轮询的原理非常有趣。

对我来说,如果没有多线程的执行,它是不会强大的。

例如,我尝试使用这个库furious-objectpool

调试表明,创建/钝化方法是在同一个请求线程中执行的,我如何利用这个主体在另一个线程中使用它?

EN

回答 1

Stack Overflow用户

发布于 2014-11-10 04:18:21

在Java中,不鼓励使用对象池。它们是一个相当昂贵的概念,通常比仅仅创建一个对象要昂贵得多(新运算符需要大约10条指令,池中的获取/释放通常需要更多指令)。

此外,Java中的这种长寿对象往往会造成GC无法清理资源的混乱。

我真的鼓励你使用一些DI容器和一些漂亮的无状态bean。它既非常快(通常每个类型只有一个对象),又易于管理。

但是,如果确实需要使用池,请确保将其用于具有非常昂贵的构造过程的对象-通常是某种网络连接(数据库连接是最常见的示例)。

至于另一个线程的东西:这样的池(或者说有什么意义呢?)始终保持线程安全。典型的使用场景将涉及某种类型的服务器(如REST服务),该服务器每分钟接受并执行大量用户请求。

编辑:还有,请不要仅仅因为一个技术/库看起来很酷就使用它。从长远来看,这往往会给你带来麻烦。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26831222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档