- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Java 程序可以并行执行一些计算。我可以在一台机器上运行它,也可以使用多台不同的机器。
在单机上执行时,线程同步是通过使用java.util.concurrent.CyclicBarrier包中的CyclicBarrier类成功实现的。这个想法是所有线程必须等待其他线程到达同一点才能继续计算。
在多台不同机器上执行时,进程间通信是通过RMI(Remote Method Invocation)实现的。我在这种情况下遇到了同样的问题,我希望这些进程的线程在继续之前等待其他线程到达同一点。我不能在不同进程之间使用共享的 CyclicBarrier 对象,因为此类不可序列化。
我有什么替代方法可以在多台机器上的不同进程上执行的线程上获得这种屏障行为?
谢谢
最佳答案
您不需要在进程之间传递 CyclicBarrier。您可以执行一个 RMI 调用,该调用又使用 CyclicBarrier。我建议您看看 HazelCast,它支持分布式 Lock
和许多其他集合。
恕我直言,我会重新考虑您是否真的需要所有流程来检查点,并找到一种方法来避免首先需要它。
关于java - 带屏障的进程间同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20276256/
根据 Android docs ,activity生命周期如下: onCreate() onStart() onResume() onPause() onStop() onDestroy() 问题是,
我有一门类(class)有很多专栏,但这个问题只需要其中三个: ---------------------------------------- | start_date | start_time
给定在同一个 Tomcat 6 上运行的两个 Web 应用程序。如果您从一个应用程序到另一个应用程序进行 http 调用,Tomcat 是否会“短路”此调用,或者它会在调用之前一直在 interweb
我是一名优秀的程序员,十分优秀!