Java如何实现取消功能

RT
1)比如我有个后台线程在执行比较耗时的方法,此时有需要要结束该线程,怎么实现。
2)web页面上执行比较耗时的请求,比如数据库查询,文件上传等,该如何实现实现取消功能。

伤心啊,都没有人回复的?

查查多线程相关资料,在后台线程run方法中,加一个if判断标志,如果外界取消,就设置为true,每个环节都查询一下这个标志即可。

对于耗时计算,增加服务器,分布式技术来对付。

1)每个环节都查询该标志?那比如数据库操作本身就比较耗时呢?
2)第二个问题是 怎么取消上一个请求比较耗时的操作。

2011年05月18日 17:16 "@yaoqis"的内容
每个环节都查询该标志?那比如数据库操作本身就比较耗时呢?
2)第二个问题是 怎么取消上一个请求比较耗时的操作。 ...

你希望取消得粒度越细,那么你设置的环节就越多,当然也就越不方便,不如反过来思考,对于耗时操作通过升级硬件,增加服务器来实现,一个是软件成本,一个是硬件成本,你选择哪个,大部分人是选择硬件,这比软件容易多,软件主要是考虑可伸缩性,也就是最大限度利用硬件资源,而不是你这个被硬件压迫的思维,需要人为中止它。

对于“怎么取消上一个请求比较耗时的操作”,那么你需要对每次请求处理在session设置一个标记,如果下一次请求达到,发现没有结果,就设置该标志为false,中断操作。