不同JVM之间的Java同步 [英] Java synchronization between different JVMs

查看:43
本文介绍了不同JVM之间的Java同步的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在从事的项目会触发各种异步作业来完成一些工作.当我更多地研究它时,这些异步作业实际上是作为单独的 JVM(单独的 Java 进程)运行的.这是否意味着如果我需要在这些进程之间进行同步,我将无法使用以下任何一项:

The project I am working on would trigger various asynchronous jobs to do some work. As I look into it more these asynchronous jobs are actually being run as separate JVMs (separate java processes). Does it mean I would not be able to use any of the following if I need to synchronize between these processes:

  • 同步方法/块
  • 任何实现java.util.concurrent.locks
  • 的锁

因为在我看来它们都是线程级的?

Because it seems to me they are all thread-level?

Java 是否提供对进程间信号量之类的 IPC 支持?

Does Java provide support for IPC like semaphores between processes?

推荐答案

没错.您不能使用任何标准同步机制,因为它们在一个 JVM 中工作.

That's right. You can not use any standard synchronization mechanisms because they are working into one JVM.

解决方案

  1. 您可以使用 Java 7 中引入的文件锁.
  2. 您可以通过数据库实体使用同步.
  3. Terracota 等已经实施的解决方案之一可能会有所帮助
  4. 重新思考您的设计.如果您是 Java 世界的初学者,请尝试与更有经验的工程师详细交谈.你的问题表明恕我直言,你只是走错了路.

这篇关于不同JVM之间的Java同步的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆