序列化/反序列化Scala未来

时间:2018-10-25 13:46:35

标签: java scala

是否可以将Scala Future序列化为byte[],然后再次反序列化?。

如果可能的话,有人知道最好的方法吗?

2 个答案:

答案 0 :(得分:1)

import concurrent.ExecutionContext.Implicits._
println(if ((concurrent.Future{}).isInstanceOf[Serializable]) "Yes" else "No")

打印

No

答案 1 :(得分:1)

在scala中使用Futures的标准实现是不可能的。 未来显然不会实现Serializable接口,也不应该进行序列化。

问题是,当未来尚未结束时会发生什么。 Future之所以执行是因为它的任务是在ExecutionContext中安排的。 如果将这个Future序列化并在另一个JVM上反序列化,那么该任务将仅在第一个JVM上调度。在第二个JVM上,未来永远不会得到结果。

在准备就绪后立即序列化Future的内容可能更有意义。

相关问题