【发布时间】:2009-11-18 21:46:12
【问题描述】:
在我的服务器应用程序(用 C# 编写)中,我需要创建一个相同类型的对象池。当我需要时,我从池中拉出一个对象,当不再需要它时,它会返回到池中。机制需要是线程安全的,因为不同的线程会询问和提交这些对象。我知道经常锁定某些东西以使线程安全会对应用程序性能产生不利影响。你能推荐一个我什至可以避免显式锁定的设计吗?
请您建议我可以在上面完成的方式吗?调整池大小的能力(如果缺少对象,创建额外的)将是一个很好的附加组件。
提前谢谢...
【问题讨论】:
-
在您有证据表明锁定是导致性能不可接受的第一大原因之前,请勿尝试避免显式锁定。在绝大多数情况下,锁的速度非常快,如果你的锁很慢,那么很有可能你的应用程序中存在深层设计问题。记住,锁只是在争用下很慢,如果你有很多争用,你可能做错了什么。
标签: c# .net .net-3.5 thread-safety