我计划通过扩展RecursiveTask
类在我的应用程序中使用 Fork/Join。我注意到它是Serializable
。我想保留一些不可序列化类型的字段。我可以使它们瞬态,但这会使它们在一些 serde 操作后变为空,我不希望那样。
我想知道为什么RecursiveTask
类实现Serializable
接口,因为我看不到需要。另外,在什么情况下扩展它的类的实例会被序列化?
我计划通过扩展RecursiveTask
类在我的应用程序中使用 Fork/Join。我注意到它是Serializable
。我想保留一些不可序列化类型的字段。我可以使它们瞬态,但这会使它们在一些 serde 操作后变为空,我不希望那样。
我想知道为什么RecursiveTask
类实现Serializable
接口,因为我看不到需要。另外,在什么情况下扩展它的类的实例会被序列化?
RecursiveTask 从 ForkJoinTask 继承 Serializable 并在此处记录:https ://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ForkJoinTask.html
ForkJoinTask 是可序列化的,这使它们能够用于远程执行框架等扩展。仅在执行之前或之后而不是在执行期间序列化任务是明智的。在执行本身期间不依赖序列化。