Java 从 ExecutorService 设置回调
2022-09-04 01:59:42
我有一个固定的ThreadPool,我用它来运行一堆工作线程,以实现具有许多组件的任务的并行执行。
当所有线程都完成后,我使用方法(getResult)检索它们的结果(非常大)并将它们写入文件。
最终,为了节省内存并能够看到中间结果,我希望每个线程在完成执行后立即将其结果写入文件,然后释放其内存。
通常,我会将代码添加到 run() 方法的末尾。但是,此类中的某些其他对象也调用这些线程,但不希望它们将其结果写入文件 - 相反,它们使用其结果来执行其他计算,这些计算最终将写入文件。
所以,我想知道是否可以使用ExecutorService将回调函数附加到线程完成的事件。这样,我可以立即检索其结果并释放该方案中的内存,但在其他方案中使用这些线程时不会中断代码。
这样的事情可能吗?