关于JAVA多线程问题的请教,有劳名位,重金酬谢。^_^
问题描述:想要合理终止一个线程。
目前有一个数据库查询方法 doSomething() ;耗时很久。
想在界面上做一个按钮,在查询过程中可以取消查询。
于是我开启了一个线程来执行doSomething()查询。
但是无法终止线程
尝试方法
1 stop(),方法不安全,已经过时,而且调用之后正在执行数据查询中会抛出SqlException
2 isInterrupted()
doSometing()里耗时的一句就是
Result rs = statement.executeQuery()
这一句在执行查询,程序就在这一直在运行。但并不是阻塞。
3 使用线程标记,代码如下,这样做doSomething至少要执行一次,其实我也只是要让他执行一次就够了,而终止操作是希望在一次执行之中。
boolean flag = ture
while( flag )
{
doSomething() ;
}
希望各位给出合适的方案