Java 在多线程应用程序中,如何防止一个线程修改已被另一个线程修改的数据
假设我在3个节点上部署了一个应用程序,每个节点上都有一个线程试图同时获取和更新相同的数据记录。只能从中央数据库获取和更新数据。建立数据库连接的方法是线程安全的。在这种情况下,是否可能修改数据并导致不一致?如果是,我们如何解决这个问题?您将几个完全不同的事情混为一谈:Java 在多线程应用程序中,如何防止一个线程修改已被另一个线程修改的数据,java,multithreading,thread-safety,Java,Multithreading,Thread Safety,假设我在3个节点上部署了一个应用程序,每个节点上都有一个线程试图同时获取和更新相同的数据记录。只能从中央数据库获取和更新数据。建立数据库连接的方法是线程安全的。在这种情况下,是否可能修改数据并导致不一致?如果是,我们如何解决这个问题?您将几个完全不同的事情混为一谈: 一般来说,为了保护“线程”之间的“数据”,可以使用“锁”。Java中保护数据的一种方法是使用 一般来说,在一个“节点”上运行的“线程”不能——也不会——干扰内存中的数据对象,这些数据对象是由另一个“节点”上的某个线程操作的 “数据
- 一般来说,为了保护“线程”之间的“数据”,可以使用“锁”。Java中保护数据的一种方法是使用
- 一般来说,在一个“节点”上运行的“线程”不能——也不会——干扰内存中的数据对象,这些数据对象是由另一个“节点”上的某个线程操作的
- “数据库访问”带来了完全不同的问题。特别是,阅读有关
- 最后,如果您正在进行“数据库更新”并且“并发性”是一个问题。。。然后,您可能希望在数据库中执行更新
“交易”是指:
- 原子的
- 一致性
- 隔离
- 耐久性