Kar*_*lis 3 java parallel-processing scala akka
我正在使用Akka框架来控制硬件,在极少数情况下,我需要在计算中间冻结一个actor.这可以防止损坏硬件.有没有办法快速冻结或杀死和Actor,即使它还在运行任务?
遗憾的是,这不是JVM支持的.当Thread正在运行时,例如做一些长时间运行的操作,它不能被任意中断(是的,有一个interrupt()调用,但它只是设置一个标志,而Thread的用户域代码可能会看到这个标志,它不是一个有力的中断).由于Akka Actors使用Java线程,因此同样的限制适用于它们.
然而,演员如何在这里提供帮助的是,您可以将作品分成很小的工作块,思考"步骤",并将它们表示为消息.如果你发现你不应该继续下去,你只需要隐藏消息(或者只是对它们进行无操作,而不是执行某些操作).
这有点取决于你所说的"冻结".它本身是不可能的,但也许可以达到非常相似的效果?
//杀戮部分可以通过context stop selfActor内部或通过发送a 来完成PoisonPill,但这是异步的并且通过Actors邮箱 - 作为actor通信中的所有内容.
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |