假設方法A
正在調用方法B
。可以方法A
控制方法B
的執行時間並將其中斷,例如60秒(方法B
可以掛起)?我該如何中斷方法執行?
0
A
回答
4
您可以使用ExecutorService
異步運行任務,獲得Future
,使您可以在任務完成時獲取任務結果。在Future
上有一個get
方法,您可以打電話等待答案,並有一個超時。如果超時,則嘗試通過在Future
上調用cancel
來取消該任務。
ExecutorService executorService = Executors.newSingleThreadExecutor();
// Callable that has a run() method that executes the task
Callable<String> callable = ...;
// Submit the task for execution
Future<String> future = executorService.submit(callable);
try {
String result = future.get(30, TimeUnit.SECONDS);
System.out.println("Result: " + result);
}
catch (TimeoutException e) {
System.out.println("Timeout");
future.cancel(true);
}
併發API還有很多,請參閱軟件包java.util.concurrent
。
0
你能描述一下你究竟想要什麼嗎? 只需停止執行方法,您可以使用return, System.exit()
,上次停止虛擬機。 按時間檢查時間並從方法返回。此外,你可以嘗試一些反思黑客... 順便說一句,這些只是一個想象力,如果你會用更多的話來描述你需要什麼,我會幫助你。
0
嘗試:
public static void wait(int n){
long time0,time1;
time0=System.currentTimeMillis();
do{
time1=System.currentTimeMillis();
}
while (time1-time0<n);
}
我認爲作品。如果您調用此方法,請將它傳遞給需要程序等待參數的時間量(以毫秒爲單位)。
祝你好運!
相關問題
- 1. JavaScript方法執行中斷
- 2. 我是否應該斷言驗證方法被執行?
- 3. 執行一個可中斷的方法
- 4. 如何在Java中的線程中停止執行該方法?
- 5. 的Java執行中斷方法時斷點命中
- 6. 無法執行該活動的方法
- 7. 我應該對任何方法結果執行Contract.Ensures嗎?
- 8. 通過斷點執行方法
- 9. 我該如何斷言一個方法只被調用一次?
- 10. 我該如何測試執行命令行程序的PHP類方法?
- 11. 如何執行方法
- 12. 如何跳過執行父方法來執行祖父方法?
- 13. 我該如何解決執行.jar?
- 14. 我該如何執行會員制?
- 15. 中斷vs中斷執行
- 16. 如何在android中執行GET方法?
- 17. 如何在RSpec中執行stubbed方法
- 18. MVC如何中止方法執行?
- 19. 如何在C#中執行方法#
- 20. 如何在FBSessionDelegate方法中執行segue?
- 21. 我應該如何調用BIOS中斷
- 22. 測試不執行方法,除非我在方法的返回值上斷言
- 23. 我無法執行該程序
- 24. 我該如何停止從頁面中斷rdlc tablix行中間
- 25. 如果記錄是全新的,我該如何執行'after_save',但如果不是`before_save`,我該如何執行?
- 26. 如何在我的方法上執行我的RETURN,直到執行THREAD?
- 27. 如何執行該方法,直到每個Ajax方法獲取數據
- 28. 爲什麼不執行debounce函數執行該方法?
- 29. 如何在python中執行方法執行
- 30. 如何中斷執行程序線程
新的設計是否適合您? –
對於此描述回答否如果一個線程中有兩個方法,並且如果B是新線程,則返回YES。 –