簡體   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