如何创建对象池以便能够借用和返回对象

时间:2012-01-19 10:01:09

标签: java pool

我想知道,是否可以创建一个对象池?所以我可以从池中取出一个对象,一旦我完成了工作,我就可以将它放入池中。

3 个答案:

答案 0 :(得分:15)

  

我想知道,是否可以创建一个对象池?所以我可以从池中取出一个对象,一旦我完成了工作,我就可以将它放入池中。

可能是的。如果新对象的构造很昂贵(如建立数据库连接),或者由于其他原因导致GC带宽过高(通常在Android版本中存在问题),您可以在许多情况下看到性能改进。

以下是一些可用于实施池的资源。您可以立即使用Apache的ObjectPool

答案 1 :(得分:1)

虽然很晚但可能有用。

以下链接提供了使用apache-commons-pool-2创建对象池的充分信息和实现细节:

http://www.techypages.com/2014/03/creating-object-pool-in-java.html

答案 2 :(得分:1)

或者,如果每个对象的重量都不大,和/或您不介意为每个线程保留该对象,请考虑ThreadLocal对象。

http://tutorials.jenkov.com/java-concurrency/threadlocal.html