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