繁体   English   中英

设置Java退出代码而不退出

[英]Set Java exit code without exiting yet

在具有大量关闭操作的高度并发程序中,想知道如何在不过早调用System.exit()的情况下设置退出代码? 可以设置“当其他一切完成时执行此代码”方法? 但我真的只想提前设置退出代码。

如果我正确理解你想要的是以某种方式保留退出代码,运行一些方法,然后使用预先确定的退出代码调用System.exit
IMO你应该做的是改用Shutdown钩子 即你的代码将在JVM关闭之前运行(如果我正确地得到你的要求)将具有相同的结果和简单的编码实现(即不使用状态变量和不寻常的编码逻辑来实现你想要做的事情等等)

让主线程产生所有其他线程,使其仅在所有其他线程完成时关闭。

在具有大量关闭操作的高度并发程序中

这对我来说是一种代码味道。

我可以理解多个线程可能想要关闭的方式,但不应该允许它们这样做。

相反,我会创建一个名为initiateShutdown(int code)的全局方法。 此方法将包含用于确定何时适合实际关闭的逻辑。 由于您可能不希望从此方法返回一个线程,因此您可以实现某种永不返回的锁,并将该线程委托给等待此锁。

只需将结果存储在某处并使用任何合适的同步工具来告诉您已完成。 完成后,只需读取存储的结果并使用System.exit(结果)退出。

我很好奇,如果有几个线程设置结果,你应该使用哪个?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM