Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 序列化/反序列化Scala future_Java_Scala - Fatal编程技术网

Java 序列化/反序列化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显然没有实现可序列化的接口,也不应该被序列化 问题

是否可以将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)。