【发布时间】:2010-03-27 18:56:45
【问题描述】:
在数据库中,我有一个定义表,它在启动时从应用程序中读取一次。此定义表很少更改,因此读取一次并在每次更改时重新启动应用程序是有意义的。
但是,在读取表之后(放入一个 ResultSet),它将被运行在各自线程中的多个处理程序读取。
您建议如何完成这项工作?
我的想法是填充一个 CachedRowSet,然后在每次新请求到来时为每个处理程序创建这个集合的副本(通过 createCopy() 方法)。
你认为这是明智的吗?这是否提供了良好的性能?
谢谢。
【问题讨论】:
-
如果您只是阅读,则不必担心数据竞争问题。
-
是的,没错。不过,更担心的是性能。我每秒可能有 30-60 个请求,每个处理程序都会创建定义表的副本(目前有 300 条记录,但可能会增长)。
标签: java multithreading jdbc resultset