我有一个多线程Scala应用程序,我有一个关闭钩子,它调用对象的shutdown()方法。不幸的是,这似乎并不可靠。很多时候它无法处理SIGINT并在匿名函数上抛出NoClassDefFoundError。
如何使此关闭处理程序更健壮?
答案 0 :(得分:1)
一个建议:不是直接注册shutdown()
挂钩,而是创建一个ShutdownManager
对象并让它注册一个shutdown()
挂钩。您的应用程序对象将自己添加到ShutdownManager
,然后可以使用特征或通过函数对象调用某些应用程序对象关闭方法。
答案 1 :(得分:0)
使用以下任一方法预加载钩子所需的所有类:
Class.forName(" YourObject")或Class clasz = YourObject.class