java - 与数据库同步

标签 java

关于 Java 中“最佳实践”的快速问题。假设您有一个数据库对象,该数据库的主要数据结构为映射。此外,假设您想要同步 map 的任何获取/设置信息。同步访问/修改 map 的每个方法是否更好,或者您是否希望在每次修改/访问 map 时在 map 周围创建同步块(synchronized block)?

最佳答案

取决于需要原子化的工作单元的范围。如果您有一个进程执行代表单个状态更改的多个操作,那么您希望在 Map 对象上同步整个进程。如果您要同步每个单独的操作,多个线程仍然可以在读取和写入时相互交错。这就像在未提交读模式下使用数据库游标一样。您可能会根据其他一些线程的半完成工作、看到不完整/不正确的数据状态来做出决定。

(当然,插入强制建议,使用 java.util.concurrent.locks 中的类而不是同步关键字:) )

关于java - 与数据库同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9730528/

相关文章:

java - 如何在 TestNG 中的测试之间等待 X 分钟

java - 如何在java中更改鼠标进入和鼠标退出时的字体颜色

java - XSLT 传输失败,因为 Weblogic 找不到位于 rt.jar 中的类

java - 使用java匿名函数返回值

Java 项目 : should . 类路径 .project 文件被提交到存储库?

java - 应用程序在 1.5 模拟器中启动但在 1.6 中不启动

java - 在 PHP 中运行 JAR 文件并编写文件

java - REST Java 客户端 API : Release connection before allocating another

java - selenium 中的desire 功能和Firefox 选项之间的主要区别是什么

Java Json 解析器数组