如何创建一个线程安全的对象池?

时间:2009-11-18 13:38:40

标签: c# .net .net-3.5 thread-safety

在我的服务器应用程序(用C#编写)中,我需要创建一个相同类型对象的池。我需要时从池中拉出一个对象,当它不再需要时它会回到池中。机制需要是线程安全的,因为不同的线程将询问并提交这些对象。我知道经常锁定某些东西以使线程安全对应用程序性能产生负面影响。你能否提出一个我甚至可以避免明确锁定的设计?

请问您可以建议我上面的方法吗?能够调整池的大小(如果缺少对象,则创建额外的)将是一个很好的附加组件。

提前致谢...

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

我在CodeProject上有this one好运。我只需要对WeakReference的存储方式做一个小小的调整,但除此之外,它在生产中运行完全没有任何问题。