首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个线程一个DAO还是threadsafe DAO?

每个线程一个DAO还是threadsafe DAO?
EN

Stack Overflow用户
提问于 2010-01-05 01:57:30
回答 2查看 2.7K关注 0票数 5

我想知道在多线程应用程序中是否有经过批准的实践。我应该让每个线程有一个DAO,还是简单地让一个DAO成为线程安全的单例。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-05 02:04:51

这在很大程度上取决于您用于数据访问的机制。如果您有一个非常可伸缩的数据访问,并且有很多线程,那么使用某种形式的线程静态数据访问可能会很有优势。

如果您没有可伸缩的数据访问,您的提供程序不支持每个进程多个线程,或者您此时不需要可伸缩性,那么使用具有适当同步的单例会更简单、更容易实现。

对于大多数业务风格的应用程序,我个人认为单例方法更容易维护,而且可能更好-如果没有其他原因,那么它更容易进行有效的测试。多线程用于数据访问可能不是必需的,因为数据访问可能不会成为影响可用性的瓶颈(如果设计正确,并且批处理请求适当)。

票数 4
EN

Stack Overflow用户

发布于 2010-01-05 02:18:56

使用最适合您的应用程序架构的方法,除非:

1)您的数据访问对象的创建成本很高,在这种情况下,您应该倾向于使用线程安全的单例。

2)您的对象保持可变状态,就像在Active Record pattern中一样。(不变的DAO配置状态,如超时阈值,不计在内。)

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

https://stackoverflow.com/questions/2001073

复制
相关文章

相似问题

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