我有一个简单的方法是这样的:
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/