我稱之爲執行後臺操作的Java文件。由於在後臺執行的線程(在另一個java文件中),我無法將結果返回給jsp頁面。已知return和system.exit(0)不能同時使用。無論如何,要停止可見java文件中的線程並返回結果。停止在後臺執行一個線程,然後返回結果
0
A
回答
1
你可以受益於更仔細地制定你的問題。沒有「線程在另一個Java文件中執行」這樣的事情,所以不清楚你的意思到底是什麼。
有沒有簡單的Java /安全的方式終止任意線程。通常最簡單的辦法是使用ExecutorService,提交你的工作,並堅持在返回Future對象,你可以使用後獲得的結果或取消作業執行。如果您希望這樣做,您也可以在不等待作業完成的情況下關閉ExecutorService。在這種情況下,顯然你的工作應該寫在取消注意的位置,所以沒有不良副作用。
0
如果將線程封裝在try {...} catch(InterruptedException ex){...}塊中,則可以使用Thread.interrupt()方法(http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#interrupt())。這會將線程發送到中斷處理程序,您可以在返回結果之前清理所需的任何內容。
我認爲你需要在運行循環的某個地方檢查thread.isInterrupted(),如果是這樣,就跳出到中斷處理程序的循環,因爲有時從主程序調用.interrupt()不會導致線程跳轉到中斷處理程序。關於此的所有細節都在我之前鏈接的頁面上。
0
您的意圖不是很清楚,但您可能想看看Java Future
和ScheduledFuture
接口以及使用它們的多線程類。
相關問題
- 1. 在後臺執行AFHTTPOperation並返回結果
- 2. 代碼(java,多線程)在一行代碼後停止執行
- 3. closeWithCompletionHandler在從後臺線程執行時有奇怪的結果
- 4. SQL過程執行第一行然後停止
- 5. 存儲過程更新一個光標,然後返回結果
- 6. 後臺線程返回的UIImage的結果作爲零
- 7. 停止一個PHP後臺進程
- 8. 如何停止黑莓後臺線程
- 9. 如何殺死/停止後臺線程?
- 10. 停止後臺線程的iOS
- 11. 停止後臺線程的CFRunLoop
- 12. iPhone:停止在後臺運行程序
- 13. glGenTextures在後臺線程中返回零
- 14. 運行一個後臺進程,然後在中間處理後終止它
- 15. 停止在後臺線程中執行動畫並運行循環
- 16. 中斷承諾鏈 - 停止執行下一個'然後'
- 17. webservice返回執行後終止的線程?
- 18. 執行Javascript代碼在後臺線程
- 19. 在後臺執行計算(線程)
- 20. 執行在後臺和主線程ios
- 21. ProgressBar在Android中完成後臺執行後不會停止
- 22. 過程在後臺執行時會停止
- 23. 在google appengine後臺運行只有一個後臺線程
- 24. 如果formfield不爲空然後停止執行腳本
- 25. mfc C++計算結果在一個9後,然後回到1
- 26. 定期執行一個函數,如果返回true則停止
- 27. 在一段時間後停止線程
- 28. 在一段時間後停止線程
- 29. CMDExec如果存在然後停止
- 30. 如何識別運行後的線程,然後用執行程序插件在Grails中停止它?