我想知道是否有这样做的好方法。我有一个Runnable对象列表但我现在无法让它们运行,因为我的服务器正在关闭。它们必须存储在磁盘上,以便下次服务器启动时,线程可以再次运行。
我不需要记住他们的状态。我想要的就是能够重新运行线程。我从哪里开始迷路了。任何建议将不胜感激。
答案 0 :(得分:1)
使用Java 8,您可以从lambda表达式which are serializable创建Runnables。例如:
Runnable r = (Runnable & Serializable) () -> yourRunMethodHere();
try (ObjectOutput oo = new ObjectOutputStream(new FileOutputStream(file))) {
oo.writeObject(r);
}
检索Runnable并运行它可以通过以下方式完成:
try (ObjectInput oi = new ObjectInputStream(new FileInputStream(file))) {
Runnable r = (Runnable) oi.readObject();
r.run();
}
我不认为Java 7为这个问题提供了一个优雅的解决方案。