Java中的超时方法

Java类中,我有一个方法,有时需要很长时间才能执行。也许它挂在该方法流程中。我想要的是,如果该方法在特定时间内未完成,则程序应退出该方法,并继续进行其余的流程。

请让我知道有什么方法可以处理这种情况。

回答:

您必须使用线程才能实现此目的。线程是无害的:)下面的示例将一段代码运行10秒钟,然后结束它。

public class Test {

public static void main(String args[])

throws InterruptedException {

Thread thread = new Thread(new Runnable() {

@Override

public void run() {

System.out.println("0");

method();

}

});

thread.start();

long endTimeMillis = System.currentTimeMillis() + 10000;

while (thread.isAlive()) {

if (System.currentTimeMillis() > endTimeMillis) {

System.out.println("1");

break;

}

try {

System.out.println("2");

Thread.sleep(500);

}

catch (InterruptedException t) {}

}

}

static void method() {

long endTimeMillis = System.currentTimeMillis() + 10000;

while (true) {

// method logic

System.out.println("3");

if (System.currentTimeMillis() > endTimeMillis) {

// do some clean-up

System.out.println("4");

return;

}

}

}

}

以上是 Java中的超时方法 的全部内容, 来源链接: utcz.com/qa/404021.html

回到顶部