簡體   English   中英

Java安全應用程序關閉

[英]Java secure application closing

關閉這樣的大型Java應用程序是否安全(正確)? 假設用戶點擊了關閉動作或退出。

AppView av = new AppView(); //suppose using mvc approach
for (Frame frame : Frame.getFrames()) {
    av.dispose();
}
System.exit(0);

取決於您的應用程序。 如果您有一個多線程環境,您可能還想告訴其他線程停止(並給他們一些時間來完成它們的工作,或者至少在必要時保存它們的狀態)。 還要考慮守護程序線程與普通線程。

如果您沒有啟動任何額外的線程,那么我認為這還可以。 但是同樣,如果您安裝了一些關閉窗口的偵聽器,則它們可能正在做某些事情,這些事情最終可能會與其他框架混在一起。 再次:這完全取決於您的應用程序。

您可以在有或沒有System.exit(0);情況下停止應用程序System.exit(0); 這種情況取決於您的應用程序的性質,是否有多個線程,是否使用外部資源,是否為其他應用程序服務,因此讓我們僅討論這些情況。

資源管理 :每當您打開資源時都必須先關閉,Java 7為資源管理添加了一項新功能,以使用try-with-resources自動關閉資源 ,另請參閱本文 當未關閉文件資源時可能出現的風險的一個示例是“文件查找”(在某些OS中)。

服務其他應用程序 :如果您的應用程序旨在以某種方式(例如套接字通信)服務於其他應用程序,那么一方面,您必須處理在協議級別中斷通信的情況,您應該告訴連接的用戶什么?在應用程序中,另一方面,您必須如前所述管理已使用的資源。錯誤的協議概念可能會導致無限等待。

多線程 :如果您的應用程序啟動了多個線程,那么您必須在一個中央類上工作,如果可以安全的方式管理該類的停止操作,則應該通知每個啟動的線程該應用程序將被停止,然后他們每個人都必須處理此請求以准備結案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM