[英]How to limit the execution time of a third-party Java method
在Java程序中,我需要執行第三個paryt java類的方法。 我使用Class.forName
獲取類和newInstance()
來獲取此類的對象:
Class class = Class.forName(className);
AClass object = (AClass) class.newInstance();
然后我執行並獲得所需方法的結果
ResultObject result = object.method();
到現在為止還挺好。 但是如果我想限制方法的執行時間(例如,如果方法在給定的秒數后沒有停止,我想要終止此執行並忽略結果),則會出現問題。
理想的解決方案是在單獨的線程中運行該方法,並在方法未及時完成時停止並銷毀此線程。 但不幸的是,一個線程無法stop()
(它的stop()
方法已被棄用)並且我不能依賴第三方方法的正確中斷行為。
有沒有其他方法來執行一個方法並完全控制它的執行(即能夠隨時殺死它)? 我確信這是可能的 - 例如,Netbeans可以執行我的類(當我運行我的應用程序時)並且如果我按下停止按鈕它可以殺死它。 但Netbeans(或Eclipse或任何其他IDE)如何設法做到這一點?
任何的想法? 謝謝!
一種選擇是不僅在單獨的線程中運行第三方代碼,而且在單獨的進程中運行。 這是一個麻煩,但你可以隨時殺死這個過程,並保證工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.