需要实现一个timeout的功能
方法A调用另外一个方法B
如果B执行的时间超出
A中断调用,返回timeout异常这个有什么好的方法么
谢谢

解决方案 »

  1.   

    可以用一个方法启动一个线程.这个线程的run方法就相当于它调用的方法.然后,主方法等待一段时间,时间到后,如果这个线程还是活的,杀死它.
      

  2.   

    建个TIMER类,被调用的方法成功的话返回TRUE,定时查下这个标志位,不为TRUE就提示超时
      

  3.   

    还有没有好的办法阿,我就是这么干得,但是总不对,线程中断不了ThreadBiz threadBiz = new ThreadBiz(); //业务线程
    threadBiz.start();
    try
    {
    threadBiz.join(10); //超时控制
    }
    catch(InterruptedException es)
    {
    es.printStackTrace();
    }
    if(threadBiz.isAlive()) 
    {
    threadBiz.interrupt();
    // ------这个时候,线程的状态总是RUNNABLE...threadBiz.interrupted() = false
    System.out.println("超时" + threadBiz.getState() + "..." + threadBiz.interrupted());
    }