1

我有一个多线程 Scala 应用程序,并且我有一个关闭挂钩,它在对象上调用一个 shutdown() 方法。不幸的是,这似乎并不可靠。很多时候它无法处理 SIGINT 并在匿名函数上抛出 NoClassDefFoundError。

如何使这个关闭处理程序更健壮?

4

2 回答 2

1

一个建议:与其直接注册钩子,不如shutdown()创建一个ShutdownManager对象并让它注册一个shutdown()钩子。您的应用程序对象将自己添加到ShutdownManager其中,然后可以使用特征或通过函数对象调用某些应用程序对象关闭方法。

于 2012-07-06T02:51:13.177 回答
1

预加载你的钩子需要的所有类:

Class.forName("YourObject") 或 Class clasz = YourObject.class

于 2014-03-26T14:56:34.857 回答