为什么RecursiveTask在fork-join中实现Serializable



我计划通过扩展RecursiveTask类在应用程序中使用Fork/Join。我注意到它是Serializable。我有一些不可序列化类型的字段,我想保留在其中。我可以使它们成为瞬态的,但这会使它们在一些serde操作后变为null,我不希望这样。

我想知道为什么RecursiveTask类将Serializable接口实现为我认为没有必要。此外,在什么情况下,类扩展的实例将被序列化?

RecursiveTask从ForkJoinTask继承了Serializable,并在此处进行了说明:https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ForkJoinTask.html

ForkJoinTasks是可序列化的,这使它们能够用于远程执行框架等扩展。明智的做法是只在执行之前或之后序列化任务,而不是在执行期间序列化。在执行过程中不依赖序列化。

最新更新