如果多个JVM或容器访问共享内存,如何在Java中实现线程安全?

时间:2016-12-01 16:11:13

标签: java multithreading concurrency thread-safety java.util.concurrent

我们知道当只有一个JVM但是如果有多个JVM时,同步关键字可以工作,这意味着JVM的实例超过1个,那么在这种情况下我们如何实现线程安全呢?

给定,每个容器创建自己独立的实例。假设我有3个单独的jvm实例,并且这些实例在同一个帐户上进行一些交易信用或借记,那么我如何使这些交易序列化或原子化或互斥。谁能说出最好的方法?

1 个答案:

答案 0 :(得分:0)

由于JVM提供的Synchronized关键字和Lock仅适用于独立应用程序,因此您无法使用这些技术在群集中保持线程安全。

执行此操作的一般方法,或最简单的方法是由关系数据库提供的事务。

或者你可以使用其他技术来实现分布式锁,据我所知你可以使用Zookeeper,Redis来实现它。