我有一个简单的方法是这样的:

public void foo(int runForHowLong) {
    Motor.A.forward();
}

现在,一个希望能够将参数传递给foo()的方法,该参数为foo()的运行时间设置了时间限制。就像我发送foo(2)一样,它运行2秒钟。

最佳答案

您可以使用AOP和 @Timeable jcabi-aspects注释(我是开发人员):

class Motor {
  @Timeable(limit = 1, unit = TimeUnit.SECONDS)
  void forward() {
    // execution as usual
  }
}

当达到时间限制时,您的线程将把interrupted()标志设置为true,这是您的工作,可以正确处理这种情况并停止执行。

关于java - 设置方法的时间限制/超时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7678121/

10-09 06:17
查看更多