我称之为执行后台操作的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中停止它?