毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

java线程运行时间过长吗,如何终止运行

更新时间:2013-7-3:  来源:毕业论文

java线程运行时间过长吗,如何终止运行

public class gggg {     public class MRCC implements Callable<Integer>{         public Integer call() throws Exception {             int i = 0;             i = getI();             return i;         }     }     public static int getI(){         while(true){ //模拟一个调用可能需要很长时间才会返回,或者不返回结果的接口(只是模拟,并且这个调用接口不可以更改)         }     }     public static void main(String[] args) {         gggg g = new gggg();         ExecutorService e = Executors.newSingleThreadExecutor();         Future<Integer> f = e.submit(g.new MRCC());         try {             f.get(4000, TimeUnit.MILLISECONDS);             System.out.println("获得了返回值");         } catch (InterruptedException e1) {             System.out.println("中断错误");         } catch (ExecutionException e1) {             System.out.println("执行错误");         } catch (TimeoutException e1) {             f.cancel(true);             System.out.println("超时");         }                 System.out.println(f.isCancelled() + "," + f.isDone());         System.out.println("关闭");         e.shutdown();     }   }


调用一个方法,但是这个方法可能出现长时间无返回值,那么我该怎么结束这个运行超时的线程?
上面代码中用运行过后,线程无法释放,依旧在运行(在eclipse里面测试的时候,打印出“关闭”语句后,程序依然在运行,正常情况下应该是结束的)。
对多线程有点晕头转向了~~又不能强制终结掉Callable类,即使是改用Thread类实现,也无法结束这种类似的线程(我甚至使用了stop()方法),并且Thread方法不能返回值

 

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。