簡體   English   中英

如何限制第三方Java方法的執行時間

[英]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.

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