Java 序列化/反序列化Scala future
是否可以将Scala Future序列化为Java 序列化/反序列化Scala future,java,scala,Java,Scala,是否可以将Scala Future序列化为字节[],然后再次反序列化 如果可能的话,有人知道最好的方法吗 import concurrent.ExecutionContext.Implicits._ println(if ((concurrent.Future{}).isInstanceOf[Serializable]) "Yes" else "No") 印刷品 No 印刷品 No 这在scala中期货的标准实现中是不可能的。 Future显然没有实现可序列化的接口,也不应该被序列化 问题
字节[]
,然后再次反序列化
如果可能的话,有人知道最好的方法吗
import concurrent.ExecutionContext.Implicits._
println(if ((concurrent.Future{}).isInstanceOf[Serializable]) "Yes" else "No")
印刷品
No
印刷品
No
这在scala中期货的标准实现中是不可能的。 Future显然没有实现可序列化的接口,也不应该被序列化 问题是,当未来还没有结束时会发生什么。 Future被执行,因为它的任务是在ExecutionContext中调度的。 如果将这个未来序列化并在另一个JVM上反序列化,那么该任务将只在第一个JVM上调度。在第二个JVM上,未来永远不会得到它的结果
一旦将来的内容准备好,序列化它可能更有意义。这在scala中的期货标准实现中不可能实现。 Future显然没有实现可序列化的接口,也不应该被序列化 问题是,当未来还没有结束时会发生什么。 Future被执行,因为它的任务是在ExecutionContext中调度的。 如果将这个未来序列化并在另一个JVM上反序列化,那么该任务将只在第一个JVM上调度。在第二个JVM上,未来永远不会得到它的结果
一旦将来的内容准备好,序列化它可能更有意义。完全同意,但在我的情况下,执行是在同一个JVM中,我仍然不知道Monix任务[+a]如何扩展它的可序列化性,并且可以工作异步Monix执行(有时?)是惰性的。我想他们会在使用任务后立即重新触发任务的执行。完全同意,但在我的情况下,执行是在同一个JVM中,但我仍然不知道为什么Monix任务[+A]扩展了可序列化性,并且可以工作异步Monix执行(有时?)是懒惰的。我认为,一旦任务被使用,他们就会重新触发任务的执行。就目前而言,这个问题太广泛了。您应该将范围缩小到Java的默认序列化,或者缩小到特定的序列化库(例如Kryo)。您应该将范围缩小到Java的默认序列化,或者缩小到特定的序列化库(例如Kryo)。